![]() |
SC_CLOSE Message gibt anderes Resultat als Close;
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute! Weiß einer von euch mir zu helfen? Ich habe leider herausfinden müssen, dass ein Klick auf "X", um ein Formular zu schließen, ein anderes Resultat erzeugt als ein Klick auf einen Button, der Close; aufruft. Um das zu verdeutlichen, hier eine kleine Erklärung:
Die Formulare (Testprogramm): Form1 hat einen Button und ruft Form2, egal ob modal oder nicht, das Resultat bleibt das Gleiche, auf. Form2 hat einen Button und zwei RadioButtons, welches nicht checked sind. Klicken auf den Button ruft Close;. In FormShow und FormClose des Form2-Formulars steht:
Delphi-Quellcode:
RadioButton1.Checked := False; RadioButton2.Checked := False;
Die unterschiedlichen Resultate: 1) Form2 wird über Form1 geöffnet. Ich klicke auf einen der RadioButtons. Klicke ich in Form2 auf den Button zum Schließen, so werden beide RadioButtons ent-checked und das Formular wird geschlossen. Ein erneutes Öffnen des Formulars zeigt mir zwei nicht-checked RadioButtons. 2) Form2 wird über Form1 geöffnet. Ich klicke auf einen der RadioButtons. Klicke ich auf das X in der Titelleiste um das Formular zu schließen, so werden, solange das Formular noch sichtbar ist, beide RadioButtons ent-checked. Ein erneutes Öffnen des Formulars zeigt mir nun aber den zuletzt angeklickten RadioButton CHECKED! Warum das? Im Anhang befindet sich eine kleine Demo. |
AW: SC_CLOSE Message gibt anderes Resultat als Close;
Close ist was anderes als deine Eventmethode Form1Close
|
AW: SC_CLOSE Message gibt anderes Resultat als Close;
Hi, das kann sein, ja. Aber in meinem Test-Code befindet sich eine -showmessage- im FormClose-Event.
Diese showmessage wird beim Klick auf den Schließen-Button als auch beim Klick auf das X angezeigt. Ebenfalls ist in dem FormClose-Event das unchecken der beiden RadioButtons vorhanden. Demnach wird das Event ja bei beiden Klicks angesprungen. Aber weshalb re-checked der meinen RadioButton wieder, wenn ich das Formular per X schließe und dann erneut öffne?
Delphi-Quellcode:
Beim erneuten Öffnen des Form2-Formulars MÜSSTEN ja eigentlich die beiden RadioButtons Checked = False sein.
// Unit1
procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end; // Unit2: procedure TForm2.Button1Click(Sender: TObject); begin Close; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin RadioButton1.Checked := False; RadioButton2.Checked := False; showmessage('FormClose touched!'); end; procedure TForm2.FormShow(Sender: TObject); begin RadioButton1.Checked := False; RadioButton2.Checked := False; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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