![]() |
In OnMouseClick aufrufendes Control freigeben
Ich möchte z.B. im OnClick-Event einen Buttons diesen Button freigeben. Wenn ich dies mache, erscheint eine Schutzverletzung oder die Meldung "Abstrakter Fehler". Wie kann ich das Problem lösen?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Button1.free; end; |
Re: In OnMouseClick aufrufendes Control freigeben
Du musst
Delphi-Quellcode:
verwenden
Sender.Free
|
Re: In OnMouseClick aufrufendes Control freigeben
also bei mir geht das ohne probleme. Kann es sein das du auf den Button später noch zugreifst (denn zumindest beim ButtonClick kommt keine AV).
@Union: Es macht keinen Unterschied ob er Sender.Free nimmt oder Button1.Free den beides wird in seinem Fall auf die gleiche Objectinstanz zeigen. |
Re: In OnMouseClick aufrufendes Control freigeben
Merkwürdig: In einem neuen leeren Projekt klappt das Freigeben ohne Fehler. Wenn ich in meinem Projekt einen neuen Schalter einfüge, der an keiner Stelle im Code genutzt wird und diesen in OnClick freigebe, tritt der Fehler auf. Lösche ich eine andere Controls aus dem Projekt z.B. Checkboxen oder Buttons tritt auch kein Fehler mehr auf. Es ist nicht nachvollziehbar welche Controls gelöscht werden müssten damit kein Fehler mehr kommt. Mal sind es einige mal einige andere. Sehr merkwürdig... Die Controls, die ich lösche, stehen in keinem Zusammenhang mit dem neuen Schalter.
|
Re: In OnMouseClick aufrufendes Control freigeben
Probiere mal anstelle von ".free" lieber ".FreeonRelease" ob es so geht.
|
Re: In OnMouseClick aufrufendes Control freigeben
Zitat:
FreeOnRelease hat damit übrigens nichts zu tun. Gruß, teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 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