Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: label erstellen --> Name?

  Alt 10. Jan 2006, 13:33
Hi MAM2508 ... und herzlich willkommen in der DelphiPraxis!

Ein schlechte Nachricht gleich vorneweg: Deine Labels werden keinen Namen haben.
Warum?
Weil du sie ja nicht eindeutig deklarierst. Du hast sie kurze Zeit unter dem Namen "MyLabel" zur Verfügung. Aber eben nur so lange, wie die Variable nicht freigegeben (.Free) oder neu belegt wird.
Was kannst du jetzt tun?
Ein Weg führt über die Eingenschaft "Components" deines Formulars. Diese enthält eine List aller Komponenten, deren "Parent" das Formular ist. Du könntest also die Liste durchklappern und nach deinen Labels suchen.
Delphi-Quellcode:
var
  idx : Integer;
  EinLabel : TLabel;
begin
  for idx:=0 to FormularName.ComponentCount-1 do
  begin
    if (FormularName[idx].Components is TLabel) then //Nachsehen, ob diese Komponente vom Typ TLabel ist
    begin
      EinLabel:=TLabel(FormularName[idx].Components); //Wir holen uns die Komponente als TLabel
      EinLabel.MAchDiesUndMachDas ....
    end;
  end;
end;
Dadurch findest du natürlich alle Labels; auch die, die du mit dem Designer auf das Form gezogen hast. Um das zu vermeiden, könntest du dir in MyLabel.Tag eine Zahl speichern, die du später, in obiger Routine, kontrollierst.
if (FormularName[idx].Components is TLabel) and (TLabel(FormularName[idx].Components).Tag=DeineZahl) then
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat