Archiv verlassen und diese Seite im Standarddesign anzeigen : Komponentenname mit Variablen
Ich würde gern einen Komponentennamen durch ne Variable festlegen, also zB in ner for-Schleife, wenn man mehrere Labels wie Labelx hat, für das x halt die Zähl-Variable einsetzen.
Ich habs mit
(name as TLabel).Caption := ´irgendwas´;
probiert. name ist ein String. Das funktioniert aber net. Wie kann ich das dann machen?
Du kannst Dir ein Array aus TLabel * anlegen und jedem Label einmalig per Hand die entsprechenden Namen zuweisen.
Label[0] := Label0;
Label[1] := Label1;
Label[2] := Label2;
usw. - danach kannst Du auf die Labels immer über Dein Array zugreifen.
Ich kenne die genaue Syntax leider nicht, da ich BCB-Programmierer bin und nicht Delphi-Prgr.
Felix Kaiser
18.01.2002, 14:31
procedure TForm1.RandomNumbers;
var
i: integer;
begin
for i:= 1 to ComponentCount do if Components[i-1].ClassName = ´TLabel´ then
(Components[i-1] as TLabel).Caption:= IntToStr(Random(1000000));
end;
Zur Erklärung: In diesem Beispiel geht die Prozedur "RandomNumbers" in einer Schleife alle Komponenten des Formulars TForm1 durch. Dabei wird der Eigenschaft Caption einer jeden gefundenen Komponente der Klasse TLabel ein neuer Wert zu gewiesen, eine mit IntToStr zu einem String konvertierte Zufallszahl im Bereich bis 1.000.000.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.