22 Stimmen

Delphi: Komponenten über ihren Namen ansprechen

Tipp von Delphianer | Letztes Update am 29.01.2023 | Erstellt am 14.07.2012

In diesem Tipp möchte ich euch zeigen, wie ihr auf Komponenten nur über deren Namen zugreifen könnt. Das Verfahren bietet sich vor allem dann an, wenn ihr bei vielen Komponenten eine Eigenschaft ändern möchtet, die im besten Falle auch noch durchnummeriert sind.

Unsere Funktion der Wahl heißt FindComponent und wird benutzen sie folgendermaßen:

(FindComponent('label1') as TLabel).color := clGreen;

Hier setzen wir die Farbe von "label1" auf "clgreen". Wichtig ist dabei, dass wir immer den richtigen Typen der Komponente (hier "TLabel") hinter "as" angeben, sonst kommt es zu einer Fehlermeldung. Ansonsten können wir hinter FindComponent einfach einen String mit dem Namen der Komponente angeben, wenn wir wollen auch über Variablen.

Beispiel

In diesem Beispiel möchten wir die "label1" bis "label10" jeweils in einem Abstand von 20 Pixeln von oben nach unten anordnen und sie dabei über ihren Namen ansprechen:

procedure TForm1.Button1Click(Sender: TObject);
var
   i: integer;
begin
   for i := 1 to 10 do
   (FindComponent('label'+inttostr(i)) as TLabel).top := i*20;
end;

In unserer Schleife zählen wir "i" von 1 bis 10 hoch und wählen dadurch jeweils unser "label1" bis "label10" mit FindComponent aus. Die Eigenschaft "top" dieses so ausgewählten Labels setzen wir dann auf "i * 20", demnach wird das erste Label auf 20 gesetzt, das zweite auf 40 und so weiter.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

Das sichere Passwort

Info | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.