Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Boolean-Problem
colaka - Sa 24.09.11 11:12
Titel: Boolean-Problem
Hallo,
egal, ob ich die Dialogabfrage mit ja oder mit nein beantworte, erscheint immer ShowMessage('Weitermachen'). Ich will aber nur weitermachen, wenn Update false ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var Update : Boolean; DatumUpdateFTP, DatumUpdate : TDateTime; begin Update := false; if (DatumUpdateFTP - DatumUpdate) > 0.001 then if MessageDlg('Es gibt eine verbesserte Programmversion.' + #10#13 + 'Möchten Sie das Programm jetzt aktualisieren?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin ShowMessage('Update'); Update := true; end; if not Update then begin ShowMessage('Weitermachen'); end; |
Entweder habe ich immer noch ein Problem mit den Boolean-Werten oder mit MessageDlg, jedenfalls kann ich den Fehler einfach nicht finden und wäre für jeden Hinweis dankbar.
Danke Ebi
Narses - Sa 24.09.11 11:30
Moin!
Warum rechnest du mit den Datumswerten? :nixweiss:
Ich würde das so machen:
Delphi-Quelltext
1:
| if (DatumUpdateFTP > DatumUpdate) then |
cu
Narses
colaka - Sa 24.09.11 11:35
Hallo,
weil durch den Programmablauf manchmal kleine Zeitdifferenzen an der 5. Stelle oder noch später auftreten.
Narses - Sa 24.09.11 11:39
Moin!
colaka hat folgendes geschrieben : |
weil durch den Programmablauf manchmal kleine Zeitdifferenzen an der 5. Stelle oder noch später auftreten. |
Das ist beim Datentyp TDateTime "normal". :nixweiss: Zeig mal den Code, in dem du die Inhalte dieser Variablen bestimmst. Oder anders: was sollte denn drin stehen?
An den Boolean liegt´s jedenfalls nicht, da kann man doch kaum was falsch machen. Sobald du den Hinweis kriegst "Update", wird auch das zweite Showmessage unterdrückt. Wenn nicht, ist deine CPU kaputt. ;)
cu
Narses
colaka - Sa 24.09.11 11:50
Hallo,
DaumUpdate hol ich mir aus der Ini-Datei:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| IniDat := TIniFile.Create(FHaupt.Datenpfad+'Quantall.ini'); try DatumUpdate := IniDat.ReadFloat('Aktuell', 'Update', 1); finally IniDat.Free; end; |
und DatumUpdateFTP hol ich mir vom Server:
Delphi-Quelltext
1:
| DatumUpdateFTP := IdFTP.FileDate('update.dat'); |
Wenn ich die Dialogabfrage mit "nein" beantworte, erscheint korrekterweise ShowMessage('weitermachen').
Aber wenn ich sie mit "ja" beantworte, erscheint zuerst ShowMessage('Update') und dann auch noch ShowMessage('weitermachen'). Und da muß doch irgendwo ein Fehler sein.
Danke Ebi
Narses - Sa 24.09.11 11:55
Moin!
colaka hat folgendes geschrieben : |
Wenn ich die Dialogabfrage mit "nein" beantworte, erscheint korrekterweise ShowMessage('weitermachen'). |
OK.
colaka hat folgendes geschrieben : |
Aber wenn ich sie mit "ja" beantworte, erscheint zuerst ShowMessage('Update') und dann auch noch ShowMessage('weitermachen'). Und da muß doch irgendwo ein Fehler sein. |
Hmm... :gruebel: Benenne mal die Variable um, nicht dass das da mit irgendwelchen Formulareigenschaften oder globalen Variablen kollidiert oder so. :?
Delphi-Quelltext
1: 2:
| var MyUpdate : Boolean; |
cu
Narses
colaka - Sa 24.09.11 12:01
Hallo,
das war wohl das Problem. Jetzt funktioniert alles so, wie es soll.
Tausend Dank.
Narses - Sa 24.09.11 12:09
Moin!
colaka hat folgendes geschrieben : |
das war wohl das Problem. Jetzt funktioniert alles so, wie es soll.
|
:beer:
Einen Tipp habe ich aber noch:
colaka hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3:
| IniDat := TIniFile.Create(FHaupt.Datenpfad+'Quantall.ini'); try DatumUpdate := IniDat.ReadFloat('Aktuell', 'Update', 1); | |
Es gibt auch eine Methode .ReadDateTime(), das würde ich nicht explizit auf einen Float zwingen. :idea:
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!