![]() |
TLabel entfernen
hallo zusammen,
ich entferne im mousedown ereignis meines TLabel mit : Application.ReleaseComponent(TComponent(self)); das entsprechende label wieder. das funktioniert solange ich die Labels in der Reihenfolge in der sie erstellt wurden wieder entferne. Sobald ich die Reihenfolge ändere bekomme ich beim letzten Label das entfernt wird eine exception. Was mach ich falsch? Gruss KH |
Re: TLabel entfernen
Moin, Moin,
nehme an, dass dadurch das Array "Components" durcheinandergewürfelt wird. Vermutlich musst du das selbst nach jedem Löschvorgang reorganisieren, wenn die Reihenfolge willkürlich ist. |
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Object-Pascal / Delphi-Language" nach "VCL / WinForms / Controls" verschoben.
Ist ne VCL Frage |
Re: TLabel entfernen
@ralph
ich danke dir, werd ich prüfen Gruss Kh |
Re: TLabel entfernen
Delphi-Quellcode:
... ist aber auch nicht ganz sauber ... ? :gruebel:
Application.ReleaseComponent(TComponent(self));
|
Re: TLabel entfernen
@mario
ich weiss dass das nicht "ganz sauber" ist :-( nochmal konkret, wie es gerade ist: ich erstelle per mausklick auf einer TCustomControl eine Tlabel. im mousedown des TLabels will ich diese Labels jeweils wieder entfernen können. Wie würdest _du_ das denn lösen ? Gruss KH |
Re: TLabel entfernen
Ich kenne mich in Lazarus nicht so aus aber vielleicht
Delphi-Quellcode:
Self.Free;
|
Re: TLabel entfernen
Ja, aber Self verweist doch auf die Form?
Delphi-Quellcode:
So vielleicht?
procedure TForm1.LabelMouseDown(Sender: TObject);
begin if (Sender is TLabel) then FreeAndNil (Sender); end; |
Re: TLabel entfernen
hallo zusammen
self verweist nicht auf die Form sondern auf TLabel. Ist ja auch in der procedure TMyLabel.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Das bewirkt aber wohl dass ich mir auf beide Arten, sowohl mit freeandNil(self) oder self.free oder eben Application.ReleaseComponent(TComponent(self)); den Boden unter den füssen wegziehe. Das Ergebnis ist immer eine exception :-( mh, wie also krieg ich das letzte label weg ? Gruss KH |
Re: TLabel entfernen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz