AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum-Countdown

Ein Thema von Beginner2013 · begonnen am 27. Mai 2013 · letzter Beitrag vom 28. Mai 2013
Antwort Antwort
Seite 3 von 3     123   
Beginner2013

Registriert seit: 23. Mai 2013
28 Beiträge
 
#21

AW: Datum-Countdown

  Alt 27. Mai 2013, 12:03
Delphi-Quellcode:
showmessage(dateToStr(date));
showmessage(Form1.edit10.Text);
Werden richtig angezeigt

Geändert von Beginner2013 (27. Mai 2013 um 12:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Datum-Countdown

  Alt 27. Mai 2013, 12:06
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?

Geändert von baumina (27. Mai 2013 um 12:14 Uhr)
  Mit Zitat antworten Zitat
Beginner2013

Registriert seit: 23. Mai 2013
28 Beiträge
 
#23

AW: Datum-Countdown

  Alt 27. Mai 2013, 12:19
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.

Geändert von Beginner2013 (27. Mai 2013 um 12:32 Uhr)
  Mit Zitat antworten Zitat
Beginner2013

Registriert seit: 23. Mai 2013
28 Beiträge
 
#24

AW: Datum-Countdown

  Alt 27. Mai 2013, 12:42
Kann man evtl. das Datumformat anpassen? Vllt. gibt es Probleme wegen den "/" bei 27/May/13?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Datum-Countdown

  Alt 27. Mai 2013, 12:47
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.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#26

AW: Datum-Countdown

  Alt 27. Mai 2013, 13:12
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 ...
  Mit Zitat antworten Zitat
Beginner2013

Registriert seit: 23. Mai 2013
28 Beiträge
 
#27

AW: Datum-Countdown

  Alt 28. Mai 2013, 06:23
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;
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#28

AW: Datum-Countdown

  Alt 28. Mai 2013, 06:37
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: Gut gemacht. Programmieren lernen tut weh und man rennt am Anfang ständig gegen die Wand, aber es lohnt sich.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Datum-Countdown

  Alt 28. Mai 2013, 06:41
...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;

Geändert von baumina (28. Mai 2013 um 06:45 Uhr)
  Mit Zitat antworten Zitat
Beginner2013

Registriert seit: 23. Mai 2013
28 Beiträge
 
#30

AW: Datum-Countdown

  Alt 28. Mai 2013, 06:45
Es funktioniert Vielen Dank an Alle
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 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