AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) SC_CLOSE Message gibt anderes Resultat als Close;

SC_CLOSE Message gibt anderes Resultat als Close;

Ein Thema von SC.CLOSE · begonnen am 31. Mai 2014 · letzter Beitrag vom 31. Mai 2014
Antwort Antwort
SC.CLOSE

Registriert seit: 31. Mai 2014
2 Beiträge
 
#1

SC_CLOSE Message gibt anderes Resultat als Close;

  Alt 31. Mai 2014, 17:03
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:
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.
Angehängte Dateien
Dateityp: zip Test.zip (624,0 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SC_CLOSE Message gibt anderes Resultat als Close;

  Alt 31. Mai 2014, 17:16
Close ist was anderes als deine Eventmethode Form1Close
Markus Kinzler
  Mit Zitat antworten Zitat
SC.CLOSE

Registriert seit: 31. Mai 2014
2 Beiträge
 
#3

AW: SC_CLOSE Message gibt anderes Resultat als Close;

  Alt 31. Mai 2014, 17:20
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:
// 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;
Beim erneuten Öffnen des Form2-Formulars MÜSSTEN ja eigentlich die beiden RadioButtons Checked = False sein.

Geändert von SC.CLOSE (31. Mai 2014 um 19:14 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf