datum rechnen...
datum rechnen...
hallo...
soweit funktioniert alles... das problem was ich habe:
ich möchte im ersten feld ein editierbares datum was ich ändern kann und sich die restlichen felder drauf rechnen
momentan zeigt er mir nur das aktuelle datum , ist aber nicht editierbar und feld2,3,4 rechnet halt auf das aktuelle die sollen aber auf das editierbare rechnen also z.b. 1.8.17
kann mir da jemand helfen?
wei muss ich datum1 deklarieren das das funktioniert
gruss
procedure TForm1.Button1Click(Sender: TObject);
var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;
begin
Datum2 := Datum1 + 20; // Tage dazuaddieren
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;
edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);
end;
soweit funktioniert alles... das problem was ich habe:
ich möchte im ersten feld ein editierbares datum was ich ändern kann und sich die restlichen felder drauf rechnen
momentan zeigt er mir nur das aktuelle datum , ist aber nicht editierbar und feld2,3,4 rechnet halt auf das aktuelle die sollen aber auf das editierbare rechnen also z.b. 1.8.17
kann mir da jemand helfen?
wei muss ich datum1 deklarieren das das funktioniert
gruss
procedure TForm1.Button1Click(Sender: TObject);
var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;
begin
Datum2 := Datum1 + 20; // Tage dazuaddieren
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;
edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);
end;
Zuletzt geändert von reiter am Di 5. Dez 2017, 23:55, insgesamt 1-mal geändert.
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: datum rechnen...
Ich verstehe deine Frage nicht richtig, kommt ein falsches Datum oder werden deine Edit nicht aktualisiert ?
Dieser Code zeigt bei mir das Datum korrekt an.
Dieser Code zeigt bei mir das Datum korrekt an.
Code: Alles auswählen
Datum1 := Date;
Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy', Datum1));
Datum2 := Datum1 + 20;
Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy', Datum2));
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: datum rechnen...
doch das funktioniert alles...
nur soll date1 editierbar sein... also das ich irgendein datum eintragen kann , momentan zeigt er mir immer nur das aktuelle datum
datum2,3,4 funktioniert
nur soll date1 editierbar sein... also das ich irgendein datum eintragen kann , momentan zeigt er mir immer nur das aktuelle datum
datum2,3,4 funktioniert
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: datum rechnen...
Meinst du so was ?
Oder sollte bei jedem Tastendruck im Edit eine Abfrage kommen ?
So nebenbei verwendet man normalerweise bei eine Edit 'Text', anstelle con 'Caption'.
Oder sollte bei jedem Tastendruck im Edit eine Abfrage kommen ?
Code: Alles auswählen
var
t: TDateTime;
begin
t := StrToDate(Edit1.Text);
end;
Zuletzt geändert von Mathias am Di 5. Dez 2017, 21:54, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: datum rechnen...
Kann das sein, dass du den CalenderDialog suchst?
Code: Alles auswählen
if calendardialog1.Execute then begin
label.Caption:=datetostr(calendardialog1.Date); \\ bzw datum1 = calenderdialog1.date
end;
Re: datum rechnen...
Bei der Variante muss man vorher genau das Datum prüfen. Weil es gibt Tausend Möglichkeiten ein Datum zu schreibenMathias hat geschrieben:Meinst du so was ?
Oder sollte bei jedem Tastendruck im Edit eine Abfrage kommen ?Code: Alles auswählen
var t: TDateTime; begin t := StrToDate(Edit1.Text); end;

Re: datum rechnen...
ja, das mit dem edit.text habe ich selbst gemerkt...
und label.caption
hatte ich vertauscht
habe es jetzt aber hinbekommen... mit
sieht jetzt so aus
und es funktioniert wie ich es will
var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;
begin
Tage := 60; // 60 Tage vorwärts
DateSeparator := '.'; // datum muss eingetragen werden
Datum1 := StrToDateTime(Edit1.Text);
Datum2 := Datum1 + 20;
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;
edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);
end;
und label.caption
hatte ich vertauscht
habe es jetzt aber hinbekommen... mit
sieht jetzt so aus
und es funktioniert wie ich es will
var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;
begin
Tage := 60; // 60 Tage vorwärts
DateSeparator := '.'; // datum muss eingetragen werden
Datum1 := StrToDateTime(Edit1.Text);
Datum2 := Datum1 + 20;
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;
edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);
end;