Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 18. Mär 2015, 17:38
Hallo und Willkommen in den Heiligen Hallen des Wissens und des Wahnsinns.

(1) Wofür stehen die Konstanten bei Application.Messagebox? (52 und 6)
Hab auf die schnelle nur diese Übersicht gefunden. Die ist wohl aber etwas veraltet
Die "magischen Nummern" wie 52 und 6 sind ein absolutes Verbrechen das dich jetzt schon viel unnötige Zeit gekostet hat! Das einzige was dir hier vielleicht noch helfen kann ist die Dokumentation zu den Befehlen: Die Hilfe versteckt sich hinter der F1-Taste und kann hier wirklich weiterhelfen:
Zu TApplication.MessageBox(..) findest du die Werte die sich als dritter Parameter ("Flags") angeben lassen und was man zurückbekommt: Es sind Konstanten aus der Unit "WinApi.Windows".

Die "52" steht für "Schaltfläche ja+nein und bitte ein Ausrufezeiche-Icon". Kann man das aus einer "52" herauslesen? Nein. Deshalb sollte man lieber die vorgefertigten Werte "MB_YESNO" und "MB_ICONEXCLAMATION" dafür verwenden.

Vernünftig geschrieben sähe die Zeile also so aus:
if Application.MessageBox('Wirklich beenden?', 'Berechnung', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then [...] oder noch besser:
Delphi-Quellcode:
const
   flags: DWORD = MB_YESNO or MB_ICONEXCLAMATION;
begin
   if Application.MessageBox('Wirklich beenden?', 'Berechnung', flags) = IDYES then [...]

Auch: Die offizielle Doku ist nicht perfekt, aber besser als sie auf den ersten Blick scheint. Grade bei Delphi sind die meisten Internet-Treffer die du finden wirst gerne 10-15 Jahre alt. Ich würde mich davor hüten.

Zu den weiteren Punkten bekommst du mit Sicherheit noch mehr Input

Geändert von Der schöne Günther (18. Mär 2015 um 17:42 Uhr)
  Mit Zitat antworten Zitat