Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datum-Countdown (https://www.delphipraxis.net/175044-datum-countdown.html)

Beginner2013 27. Mai 2013 12:03

AW: Datum-Countdown
 
Delphi-Quellcode:
showmessage(dateToStr(date));
showmessage(Form1.edit10.Text);
Werden richtig angezeigt

baumina 27. Mai 2013 12:06

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?

Beginner2013 27. Mai 2013 12:19

AW: Datum-Countdown
 
Aktuell habe ich das hier in Form1:

Delphi-Quellcode:
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 Form1 habe ich ein Edit (Edit10) hier möchte ich ein Datum eintragen.
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:
showmessage(dateToStr(date));
showmessage(edit10.Text);
...zeigen beide das richtige an. Die Erste Message: 27/May/13 und die zweite 28/May/13 (wenn eingeben.

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.

Beginner2013 27. Mai 2013 12:42

AW: Datum-Countdown
 
Kann man evtl. das Datumformat anpassen? Vllt. gibt es Probleme wegen den "/" bei 27/May/13?

baumina 27. Mai 2013 12:47

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.

Perlsau 27. Mai 2013 13:12

AW: Datum-Countdown
 
Zitat:

Zitat von baumina (Beitrag 1216552)
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?

Ich riet ihm ja bereits, aussagekräftige Variablenbezeichner zu verwenden, aber das will er nicht wissen ... :dancer:

Beginner2013 28. Mai 2013 06:23

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;

Furtbichler 28. Mai 2013 06:37

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:
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;
Aber bisher: :thumb: Gut gemacht. Programmieren lernen tut weh und man rennt am Anfang ständig gegen die Wand, aber es lohnt sich.

baumina 28. Mai 2013 06:41

AW: Datum-Countdown
 
Zitat:

Zitat von Beginner2013 (Beitrag 1216560)
...zeigen beide das richtige an. Die Erste Message: 27/May/13 und die zweite 28/May/13 (wenn eingeben.

Also das Windows-Datumsformat (entspricht auch dem FormatSettings.ShortDateFormat) entspricht dem o.g. Format.

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;

Beginner2013 28. Mai 2013 06:45

AW: Datum-Countdown
 
Es funktioniert:) Vielen Dank an Alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 Uhr.
Seite 3 von 3     123   

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