![]() |
AW: Datum-Countdown
Delphi-Quellcode:
Werden richtig angezeigt
showmessage(dateToStr(date));
showmessage(Form1.edit10.Text); |
AW: Datum-Countdown
Irgendwie hängen wir nun fest. Kannst du mal den vollständigen Code von beiden Formularen posten? Du schreibst beim showmessage Form1.Edit10.Text, bei der Typumwandlung aber nur Edit10.Text ... hast du Edit10 auf verschiedenen Formularen?
|
AW: Datum-Countdown
Aktuell habe ich das hier in Form1:
Delphi-Quellcode:
Auf Form1 habe ich ein Edit (Edit10) hier möchte ich ein Datum eintragen.
procedure TForm1.Termincountdown1Click(Sender: TObject);
var Test : Integer; begin Form13.Show; Form13.Caption := 'Termincountdown'; showmessage(dateToStr(date)); showmessage(edit10.Text); Test := trunc(StrToDate(Edit10.Text) - date); Form13.Label5.Caption := InttoStr(Test); end; Auf Form13 habe ich ein Label (Label5) mit diesem möchte ich anzeigen wie viele Tage es noch bis zu dem Datum sind welches in Form1 in Edit10 eingegeben wurde.
Delphi-Quellcode:
...zeigen beide das richtige an. Die Erste Message: 27/May/13 und die zweite 28/May/13 (wenn eingeben.
showmessage(dateToStr(date));
showmessage(edit10.Text); Form13:
Delphi-Quellcode:
unit Unit13; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm13 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; private { Private declarations } public { Public declarations } end; var Form13: TForm13; implementation {$R *.dfm} end. |
AW: Datum-Countdown
Kann man evtl. das Datumformat anpassen? Vllt. gibt es Probleme wegen den "/" bei 27/May/13?
|
AW: Datum-Countdown
Ja also dieses Datumsformat hatte ich jetzt auch noch nicht in den Fingern :?
Dein Windows ist wohl auf dieses Format gestellt. Mit FormatSettings.ShortDateFormat kannst Du es ändern. |
AW: Datum-Countdown
Zitat:
|
AW: Datum-Countdown
Die Benennungen werde ich noch ändern :), möchte erstmal, dass es überhaupt läuft.
Mein aktueller Stand ist der, dass das Daten in showMessage(...) richtig angezeigt werden (Bsp. 30.05.13). Eine Ausgabe findet statt, nach Drücken des "OK"-Button der zweiten Message erscheint dann die Fehlermeldung "30.05.13 is not a valid date". Daher muss es doch iwie an der Zeile liegen in der ich die Differenz berechne (Bildung von "Test"), oder?
Delphi-Quellcode:
procedure TForm1.Termincountdown1Click(Sender: TObject);
var Test : Integer; FormatSettings: TFormatSettings; begin Form13.Show; Form13.Caption := 'Termincountdown'; //FormatSettings.ShortDateFormat := 'dd.mm.yy'; showmessage(FormatDateTime('dd.mm.yy', date)); showmessage(edit10.Text); Test := trunc(StrToDate(Edit10.Text) - strtodate(FormatDateTime('dd.mm.yy', date))); showmessage(inttostr(Test)); Form13.Label5.Caption := InttoStr(Test); end; |
AW: Datum-Countdown
Wenn Du Edit10.Text in ein Datum umwandeln willst, das im Format 'dd.mm.yy' eingegeben ist, aber dein Windows -aus welchen Gründen auch immer- das Format 'dd/MMM/yy' verwendet, dann würde ich 'Edit10.Text' auch mit dem entsprechenden Formatbezeichner umwandeln und nicht ohne, wie Du das gemacht hast.
Weiterhin würde ich dir empfehlen, bei Problemen wie diesem, keine Mehrfachoperationen in einer Zeile auszuführen. Dann verstehst Du den Code besser und siehst sofort, wo der Fehler ist.
Delphi-Quellcode:
Aber bisher: :thumb: Gut gemacht. Programmieren lernen tut weh und man rennt am Anfang ständig gegen die Wand, aber es lohnt sich.
procedure TForm1.Termincountdown1Click(Sender: TObject);
var Eingabedatum : TDateTime; AnzahlDerTage : Integer; begin Form13.Show; Form13.Caption := 'Termincountdown'; // Das könntest Du im Designer einstellen. Eingabedatum := StrToDate(Edit10.Text); // Welches Datumsformat wird hier für die Umwandlung verwendet? AnzahlDerTage := trunc(Eingabedatum - Date); Form13.Label5.Caption := InttoStr(AnzahlDerTage); end; |
AW: Datum-Countdown
Zitat:
Da du FormatSettings.ShortDateFormat auskommentiert hast, ist das Datumsformat immer noch das o.g. Ein FormatDateTime gibt dir das Datum ein einem gewünschten Format als String aus, ändert aber kein ShortDateFormat. Ein StrToDate erwartet immer einen String mit dem Format FormatSettings.ShortDateTimeFormat. Deswegen müsste es eher so gehen:
Delphi-Quellcode:
uses SysUtils;
procedure TForm1.Termincountdown1Click(Sender: TObject); var Test : Integer; begin Form13.Show; Form13.Caption := 'Termincountdown'; FormatSettings.ShortDateFormat := 'dd.mm.yy'; showmessage(DateToStr(date)); showmessage(edit10.Text); Test := trunc(StrToDate(Edit10.Text) - date); Form13.Label5.Caption := InttoStr(Test); end; |
AW: Datum-Countdown
Es funktioniert:) Vielen Dank an Alle
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz