Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Label zur Laufzeit erstellen
[TP]Hawk274 - So 08.12.02 02:24
Titel: Label zur Laufzeit erstellen
Ich wollte zur Laufzeit ein Label erstellen nachdem ich auf button geklickt habe und das mache ich folgendermaßen:
Quelltext
1:
| lSaveError := TLabel.Create(self); |
lSaveError, vom Typ TLabel, wird in der Variablendeklaration vom Form deklariert.
Danach mache ich folgendes:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| lSaveError.Name := 'lSaveError'; with lSaveError do begin Font.Name := 'Tahoma'; Font.Color := clRed; Font.Style := [fsBold]; Height := 13; Top := 250; Left := 16; Width := 100; Visible := TRUE; Enabled := TRUE; Caption := 'LALALA'; end; |
Aber es funktioniert nicht. Ich sehe es nicht!? Kann mir mal jemand erklären was ich falsche mache?
Wolff68 - So 08.12.02 02:46
Nun, Du solltest dem Label auch noch ein Parent geben, damit es weis wo es erscheinen soll. (Form, Panel, ....)
Willst Du es direkt auf der Form genügt ein Parent := Self; (wobei Self die Form ist, nicht das Label)
[TP]Hawk274 - So 08.12.02 02:53
Da war er mein AHA Effekt. thx
Wie kann ich eigentlich heraus finden ob dieses Objekt bereits existiert?
Wolff68 - So 08.12.02 20:23
Titel: Prüfen, ob Komponente existiert
Es gibt dafür 2 Wege:
1. Assigned(TComponent)
Quelltext
1: 2: 3: 4:
| IF Assigned(lSaveError) then ShowMessage('Label existiert.') else ShowMessage('Label existiert nicht.'); |
2. FindComponent(TComponent.Name)
Quelltext
1: 2: 3: 4:
| IF FindComponent('lSaveError') <> nil then ShowMessage('Label existiert.') else ShowMessage('Label existiert nicht.'); |
Wobei ich oben gesehen hab, daß Du der Komponente keinen Namen zugewiesen hast. Mach am besten noch ein
lSaveError.Name := 'lSaveError';
Klar greifst Du über die Objektvariable lSaveError auf das Label zu, aber die Eigenschaft Name des Objekts solltest Du auch noch setzen, da gerade FindComponent den Inhalt der Name-Eigenschaft auswertet und .Name auch sonst eine gewisse Referenz darstellt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!