AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Standardverhalten von Dialogen (ab)ändern

Ein Thema von Alter Mann · begonnen am 28. Aug 2008 · letzter Beitrag vom 30. Aug 2008
Antwort Antwort
Seite 2 von 2     12   
grenzgaenger
(Gast)

n/a Beiträge
 
#11

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 12:53
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
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#12

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 12:58
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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 13:05
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ß
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#14

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 13:14
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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#15

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 13:26
was du machen könntest, wäre die close methode deiner form zu überschreiben und die rückgabewerte entsprechend zu setzen...
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

Re: Standardverhalten von Dialogen (ab)ändern

  Alt 30. Aug 2008, 14:01
Ist schon Okay.

Es reicht jetzt

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

Schönes Wochenende und

Tschüß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz