Delphi-PRAXiS

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 ModalResult werte selber setzen ? (https://www.delphipraxis.net/64126-modalresult-werte-selber-setzen.html)

Hansa 27. Feb 2006 20:58


ModalResult werte selber setzen ?
 
Hi,

Modalresult hat ja verschiedene vordefinierte Werte. Kann man da auch eigene definieren und verwenden ? Die vorhandenen reichen mir nicht, bzw. will ich sie nicht zweckentfremden. Habe hier eine geschachtelte Struktur. Form mit 5 Labels und jedes zeigt eine andere Form modal an. Teilweise gehts dann wieder so weiter.

marabu 27. Feb 2006 21:07

Re: ModalResult werte selber setzen ?
 
Hallo Hansa,

solange du dich nicht erwischen lässt ist es OK. Aber beginne bei mrYesToAll + 1 - sonst hast du die Zweckentfremdung doch noch.

Grüße vom marabu

SirThornberry 27. Feb 2006 23:05

Re: ModalResult werte selber setzen ?
 
da ModalResult ein Integer ist, ist es dir völlig überlassen welche Wert du zuweist.

Hansa 28. Feb 2006 00:05

Re: ModalResult werte selber setzen ?
 
Integer ?

Delphi-Quellcode:
type TModalResult = Low(Integer)..High(Integer);
Für mich ist das jedenfalls ein Aufzählungstyp, oder wie heißen die genau ? :gruebel: Reiner integer ists jedenfalls nicht. Und da wirds gefährlich, wenn man mit anderen Typen, also auch integer einfach so rumhantiert. In der Hilfe steht auch nichts über die Zahlenwerte der 'mr'-Konstanten.

Zitat:

mrNo idNo Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Nein
mrAll mrNo + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Alle.
mrNoToAll mrAll + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Nein für alle.
mrYesToAll mrNoToAll + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Ja für alle.
Und ? Was ist mrNo und auch der Rest davor ? :mrgreen:

alzaimar 28. Feb 2006 07:06

Re: ModalResult werte selber setzen ?
 
Zitat:

Zitat von Hansa
Integer ?

Delphi-Quellcode:
type TModalResult = Low(Integer)..High(Integer);
... :mrgreen:

Das ist 100% äquivalent zu einem Integer. Die '..' definieren einen Wertebereich. TModalresult ist vom Grundtyp her ein Integer. Der Wertebereich ist -äh- geht ...nun ja... vom kleinsten bis zum größten Integer-Wert. I..Irgendwie genauso, wie Integer selbst. Nun kann man sich nur mal fragen, wieso die das so und nicht Anders definiert haben, also z.B.:
Delphi-Quellcode:
type TModalResult = Integer;
Das ist irgendwie das Gleiche.

Nur nicht das Selbe! :mrgreen:

Hansa 28. Feb 2006 12:09

Re: ModalResult werte selber setzen ?
 
Zitat:

Zitat von alzaimar
...Das ist irgendwie das Gleiche.

Nur nicht das Selbe! :mrgreen:

Yes indead ! :lol: Nur, ist es für jeden Fall auch gleich genug ? :mrgreen: Was mich hauptsächlich stört, ist die Tatsache, daß der Wertebereich eben nicht klar ist. Was ist wenn ich ein MyMrResult definiere und irgendwer sucht sich dieselbe Zahl für was ganz anderes raus ? :shock: Aber es ist vorerst auch egal. Irgendwie ist es mir gelungen die Problematik mit mrOk und mrAbort hinzukriegen. Bin dadurch mit Modalresult zumindest auf dem gleichen Nenner. :lol:

alzaimar 28. Feb 2006 12:14

Re: ModalResult werte selber setzen ?
 
Man soll eben Modalresult nicht als irgend ein Funktionsresultat missbrauchen. ModalResult sollte nur einen der vordefinierten Werte liefern, was genau gedrückt wurde, soll gefälligst in einer separaten Property stehen. So ist das sauber und wird nie mit irgendwelchen obskuren Modalresults in Konflikt kommen.

So seh ich das jedenfalls.

SirThornberry 28. Feb 2006 12:19

Re: ModalResult werte selber setzen ?
 
@alzaimar: Dann wäre es von Borland aber sinnvoller Gewesen einen Enumtyp draus zu machen.

Übrigens, wenn ich im Delphi den Mauscursor über Modalresult halte zeigt es mir den Typ als "Integer" an. Genau so zeigt es mir "Cardinal" an wenn ich die Maus über "DWord" halte. Delphi ist also "schlau" genug zu wissen was es wirklich für ein typ ist (auch wenn dort wohl nur die Ableitung und speichergröße berücksichtigt wird)

alzaimar 28. Feb 2006 12:24

Re: ModalResult werte selber setzen ?
 
Zitat:

Zitat von SirThornberry
@alzaimar: Dann wäre es von Borland aber sinnvoller Gewesen einen Enumtyp draus zu machen.

Ja, is mir auch schon aufgefallen, interessiert mich hier aber nicht (Den die Borländer machen a) auch mal Fehler und b) sind sie auch an Win32 gebunden). ModalResult ist ModalResult und nicht das Ergebnis irgend einer Benutzerklickomatenparty.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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