Hi !
Ich hab in einem Programm einen Haufen Labels erstellt die alle Namen von
Mo1
Mo2
Mo3
..
Mo8
Di1
..
Di8
tragen.
(für Wochentage, das gleiche also auch noch für Mi,Do,Fr).
Naja jedenfalls wollte ich die Labels in folgender Art und Weise beschriften:
Nun ist das natürlich nicht so einfach zu machen, daher der Umweg über Form1.Components.
Das ganze hätte dann etwa so ausgesehen:
Das geht allerdings auch nicht so einfach wie ich bei google gelesen hab, da man noch folgenden umweg gehen muss (in dem Thread den ich gelesen hab stand etwas davon das die Eigenschaften der Components protected sind und man deswegen dieses TControlHack braucht):
So hatte jetzt keinen Bock da noch die Schleife einzubauen usw. denke es sollte aber jetzt alles nötige genannt sein...
Gut... also das ganze funktioniert auch eigentlich... bloß ein bisschen zu gut, denn er zerhackt mir dabei auch noch andere Labels (die nichtmal Labels sind), beispielsweise ist dann die Beschriftung von einem Button weg, oder die eines TabSheets... und ich weiß nicht warum. Eigentlich sollten ja durch das "is TLabel" nur noch Labels für das umbeschriften in Frage kommen...
Ist der Ansatz überhaupt richtig oder ist das schon so sehr verpfuscht das ich da gleich was anderes versuchen sollte ? Wenn ja: was denn^^?
Hoffe jemand versteht was ich da jetzt verfasst habe und kennt ne Lösung
.
mfg,
crack
Ich hab in einem Programm einen Haufen Labels erstellt die alle Namen von
Mo1
Mo2
Mo3
..
Mo8
Di1
..
Di8
tragen.
(für Wochentage, das gleiche also auch noch für Mi,Do,Fr).
Naja jedenfalls wollte ich die Labels in folgender Art und Weise beschriften:
Code:
For i := 1 TO 8 DO
begin
Mo[i] := IntToStr(i);
end;
Nun ist das natürlich nicht so einfach zu machen, daher der Umweg über Form1.Components.
Das ganze hätte dann etwa so ausgesehen:
Code:
For a := 0 TO Form1.ComponentCount -1 DO begin
IF (Form1.Components[a] is TLabel) THEN begin
for i := 1 TO 8 DO
begin
IF (Form1.Components[a].Name = 'Mo'+IntToStr[i]) THEN Form1.Components[a].Caption := IntToStr(i);
end;
end;
end;
Das geht allerdings auch nicht so einfach wie ich bei google gelesen hab, da man noch folgenden umweg gehen muss (in dem Thread den ich gelesen hab stand etwas davon das die Eigenschaften der Components protected sind und man deswegen dieses TControlHack braucht):
Code:
type
TControlHack = class(TControl);
...
begin
for i := 0 to Form1.ComponentCount - 1 do
if (Form1.Components[i] is TLabel) then
TControlHack(Form1.Components[i]).Caption := 'irgendwas';
end;
So hatte jetzt keinen Bock da noch die Schleife einzubauen usw. denke es sollte aber jetzt alles nötige genannt sein...
Gut... also das ganze funktioniert auch eigentlich... bloß ein bisschen zu gut, denn er zerhackt mir dabei auch noch andere Labels (die nichtmal Labels sind), beispielsweise ist dann die Beschriftung von einem Button weg, oder die eines TabSheets... und ich weiß nicht warum. Eigentlich sollten ja durch das "is TLabel" nur noch Labels für das umbeschriften in Frage kommen...
Ist der Ansatz überhaupt richtig oder ist das schon so sehr verpfuscht das ich da gleich was anderes versuchen sollte ? Wenn ja: was denn^^?
Hoffe jemand versteht was ich da jetzt verfasst habe und kennt ne Lösung
mfg,
crack