Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: label erstellen --> Name?

  Alt 10. Jan 2006, 14:34
Da Du die Labels zur Laufzeit erstellst, kann Du nicht schon im Quellcode über einen Namen darauf zugreifen. Du hast im Grunde 2 Möglichkeiten:
1. Du packst die Labels in ein array, und greifst dann über den Index auf das Label zu
2. Du verzichtest auf das Array und suchst beim Zugriff auf das Label mittels FindComponent danach. Du kannst im Label die Eigenschaft Tag setzen, den Du als Index für dein Label nehmen kannst... Du hast doch schon die Variable Anzahl. Ich würde als den Tag einfach mit dem Wert von Anzahl füllen. Wenn Du nun also das 3. erstellte Label suchst, könntest Du diese Funktion nutzen:

Delphi-Quellcode:
function TForm1.LabelNr (Index : integer) : TLabel ;
var
 i : integer ;
begin
     Result := nil ;
     for i := 0 to ComponentCount-1 do if Components[i] is TLabel then begin
         if (Components[i] as TLabel).Tag = Index then begin
             Result := Components[i] as TLabel ;
             abort ;
         end ;
     end ;
end ;
Der Aufruf würde dann etwa so aussehen:

Delphi-Quellcode:
procedure TForm1.MachWasMitDemLabel ;
var
 Label : TLabel ;
begin
     Label := LabelNr (3) ;
     if assigned(Label) then with Label do begin
         // Mach irgend was.
     end ;
end ;
  Mit Zitat antworten Zitat