![]() |
Sender unterscheiden
Hallo!
Ich will, wenn man in meinem Prog auf ein TMenuItem "Beenden" klickt, etwas anderes passiert als wenn man auf das x im Systemmenu klickt... Wie geht das? So nicht:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin if Sender is TMenuItem then Action := caFree else Action := caNone; end; |
Re: Sender unterscheiden
Setz in der OnCLick des MenuItems eine Boolean-Variable, welche du dann in der OnClose überprüfst. Ist sie True, darf geschlossen werden, ansonsten nicht...
|
Re: Sender unterscheiden
Leider wird beim close der Sender immer deine Form selber sein.
Sowas kannste auch leicht mit einer Zeile testen :
Delphi-Quellcode:
deshalb wirklich nen Boolean setzen im OnClick des MenuItems und dann im Close oder CloseQuery abfragen.
ShowMessage(Sender.ClassName);
Ich machs immer im CloseQuery und setze CanClose auf False. |
Re: Sender unterscheiden
Danke! Hat funktioniert....
|
Re: Sender unterscheiden
Falls du das Form mit verschiedenen Controls beenden willst :
Das ist jetzt nur mal schnell zurecht gezimmert. Da IMHO alle UI Funktionen in eine/mehrere ActionLists gehören, halte ich das für sauberer als eine bool'sche Variable im Private des Forms. Ich verstehe aber nicht warum beim Klicken auf Close nix passieren soll :gruebel: . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 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