Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Standardverhalten von Dialogen (ab)ändern (https://www.delphipraxis.net/119588-standardverhalten-von-dialogen-ab-aendern.html)

grenzgaenger 30. Aug 2008 11:53

Re: Standardverhalten von Dialogen (ab)ändern
 
wenn du den wert ModalResult <> MrNone setzt, wird dein form geschlossen. wenn du dann beim button click noch mals den modalresult setzt, wird dein vorheriger überschrieben...

wenn du also den modalresult im button setzt (wie in deinem beispiel), darfst du das close nicht mehr verwenden, wenn du das ergebnis auswerten möchtest.

<HTH> GG

TBx 30. Aug 2008 11:58

Re: Standardverhalten von Dialogen (ab)ändern
 
Hallo Alter Mann,

das Phänomen erklärt soich wie folgt:

Vor Aufruf des OnClick-Ereignisses wird der Wert aus ModalResult an die Form weitergegeben.
In Deiner Ereignisbehandlung ruftst Du Close auf. Close besetzt modalResult mit mrCancel (2).
Damit ist der Wert von Modalresult schon wieder geändert, bevor dieser ausgewertet wird.

Gruß

Thomas

Alter Mann 30. Aug 2008 12:05

Re: Standardverhalten von Dialogen (ab)ändern
 
Hallo Thomas

genau das meinte ich.

Was mich an der ganzen Sache stört ist der Ablauf als solches.
Weise ich den Buttons keine Ereignisbehandlung zu, werden die ModalResult-Werte der Buttons
zurückgegeben ansonsten immer mrCancel. Super Logik.

Gruß

TBx 30. Aug 2008 12:14

Re: Standardverhalten von Dialogen (ab)ändern
 
Zitat:

Zitat von Alter Mann
Weise ich den Buttons keine Ereignisbehandlung zu, werden die ModalResult-Werte der Buttons
zurückgegeben ansonsten immer mrCancel. Super Logik.

Stimmt so nicht ganz, andere Befehle als Close werden durchaus ausgedführt und dann Modalresult nach Abarbeitung der Ereignisbehandlungsrutine behandelt.
Aber in der Procedure Close wird Modalresult für Modale Fenster explizit gesetzt.
In einem Aktuellen Projekt gebe ich in der OnClick-Rutine Eines Buttons per Showmessage eine Nachricht aus. Der Button hat ModalResult = mrOk eingestellt.
Nach bestätigen der Showmessage, schließt sich aufgrund des Modalresult die Form.

Gruß

Thomas

grenzgaenger 30. Aug 2008 12:26

Re: Standardverhalten von Dialogen (ab)ändern
 
was du machen könntest, wäre die close methode deiner form zu überschreiben und die rückgabewerte entsprechend zu setzen...

Alter Mann 30. Aug 2008 13:01

Re: Standardverhalten von Dialogen (ab)ändern
 
Ist schon Okay.

Es reicht jetzt :thumb:

Wir haben das Thema genug erörtert, ich habe etwas dazu gelernt und gut.

Schönes Wochenende und

Tschüß :cheer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.
Seite 2 von 2     12   

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