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 Mehrere Bedingungen in EINER MessageBox abfangen / anhängen (https://www.delphipraxis.net/122751-mehrere-bedingungen-einer-messagebox-abfangen-anhaengen.html)

incognito 21. Okt 2008 15:33


Mehrere Bedingungen in EINER MessageBox abfangen / anhängen
 
Hallo,

ich habe auf meiner Form 3 DateTimePicker:

DateTimePicker_DATUM --> Kind: date (aktuelles Datum)
DateTimePicker_VON, DateTimePicker_BIS --> kind time (Start- und Endzeit), voreingestellt: 00:00:00

Ich möchte nun, bevor das Formular abgeschickt wird, dass alle 3 Felder auf gültiges Datum und Uhrzeit geprüft werden, und evtl. eine Meldung kommt, wenn dies eben nicht zutriftt.

Habe nun folgendermaßen angefangen:


Delphi-Quellcode:
 if TimeToStr(DateTimePicker_VON.Time) = '00:00:00' then begin
     if TimeToStr(DateTimePicker_BIS.Time) = '00:00:00' then
        ShowMessage('Bitte überprüfen Sie Start- und Endzeit!');
     ShowMessage('Bitte überprüfen Sie die Startzeit!')
 end
 else if TimeToStr(DateTimePicker_BIS.Time) = '00:00:00' then
    ShowMessage('Bitte überprüfen Sie die Endzeit!')


 else if Trunc(DateTimePicker_DATUM.Date) = Date then begin
  MessageBox(0, 'Soll als Datum das heutige Datum eingetragen werden? Wählen Sie NEIN um das Datum zu ändern!',
                'Datumsbestätigung', MB_ICONWARNING or MB_YESNO)
 end;
Das ist so noch nicht ganz korrekt, ich weiß. Habe es auch nicht weiter verfolgt, weil mir das zu umständlich erscheint. Zu diesen Meldungen soll dann z.B. auch noch eine Meldung angezeigt werden, wenn die BIS-Zeit VOR der VON-Zeit ist usw. Also alles sehr unübersichtlich mit den ganzen IF-Anweisungen. Gibt es nicht eine Möglichkeit, für alle Bedingungen nur EINE Messagebox anzuzeigen? Also die Meldungen irgendwie anzuhängen? Dies stelle ich mir folgendermaßen vor:

1. Die Startzeit ist nicht korrekt.
2. Die Endzeit ist nicht korrekt.
3. Die Endzeit liegt vor der Startzeit.

Ich habe keine Ahnung wie :?:

Ich hoffe, ihr versteht mein Problem!!

Danke schoneinmal für eure Hilfe!!!

nahpets 21. Okt 2008 15:41

Re: Mehrere Bedingungen in EINER MessageBox abfangen / anhän
 
Hallo, wie wäre es mit
Delphi-Quellcode:
var s : string;
begin
  s := '';
...
  if TimeToStr(DateTimePicker_VON.Time) = '00:00:00' then begin
     if TimeToStr(DateTimePicker_BIS.Time) = '00:00:00' then s := s + 'Bitte überprüfen Sie Start- und Endzeit!' + #13;
  end
  else if TimeToStr(DateTimePicker_BIS.Time) = '00:00:00' then s := s + 'Bitte überprüfen Sie die Endzeit!' + #13 
else if Trunc(DateTimePicker_DATUM.Date) = Date then begin
  ... bei so'ner Entscheidung wird's wohl schwierig die Fragen so zu formulieren, dass mit dem Klick auf
      einen bestimmten Button im Programm entschieden werden kann, welcher oder welche Schritte weiter auszuführen sind.
  MessageBox(0, 'Soll als Datum das heutige Datum eingetragen werden? Wählen Sie NEIN um das Datum zu ändern!',
                'Datumsbestätigung', MB_ICONWARNING or MB_YESNO)
end;
... weitere Prüfungen ...
if s <> '' then begin
  MessageBox(0, PChar(s),'Da stimmt so Allerlei nicht...', MB_ICONWARNING or MB_YESNO)
end;


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