Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#3

Re: viele ähnliche Befehle zusammenfassen

  Alt 2. Nov 2007, 23:56
Hi,

eine weitere Möglichkeit ist es, die Liste Components des Owner nach den Labels zu durchsuchen. Das macht natürlich nur Sinn, wenn du alle Labels oder einen mathematisch eingrenzbaren Bereich bearbeiten möchtest.

In meinem Bsp. soll der Owner ein Panel (Panel1) sein.
Delphi-Quellcode:
  For Counter := 0 to Panel1.ComponentCount - 1 do
    IF Panel1.Components[Counter] is TLable then
      (Panel1.Components[Counter] as TLable).Caption := 'Hallo';
Du kannst natürlich auch auf den Componentennamen mittels (Panel1.Components[Counter] as TLable).Name als String zugreifen und für die Bearbeitung die entsprechenden Labels "filtern".

Sirius Methode läuft sozusagen anders herum. Du bildest wie in deinem Beispiel einen Namen und übergibst diesen FindComponent. Wird das passende Label gefunden, so liefert FindComponent dieses zurück. Damit kannst du dann auch auf die Caption zugreifen.

Delphi-Quellcode:
var Lable : TLable;
    LableName : String;
...
  For Counter := 0 to 20 do begin
    LableName := Format('Lable%d', [Counter]);
    Lable := self.FindComponent(LableName);
    If Assigned(Lable) then
      Lable.Caption := 'Hallo';
  end;
Gruß oki
42
  Mit Zitat antworten Zitat