Problem mit Kalenderfuntion

Antworten
Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Problem mit Kalenderfuntion

Beitrag von Justuv »

Hallo, ich habe eine Procedur um einen konkreten Tag aus einem Kalender auszuwählen. Habe ich mal irgendwo so gefunden :) . Aber funktioniert nur unter Windows korrekt. Dort erhalte ich wie gewünscht bei z.B. dem 12.6. als Ausgabe richtigerweise '12.06.2024'. Unter Linux dagegen bekomme ich '12-6-23'.
Warum, bzw, wie kann ich das korrigieren?

Danke schon mal. . .

Jürgen

procedure TForm1.Kalender;
F: TCalLiteForm;
d: TDate;
begin
F := TCalLiteForm.Create(nil);

try
if TryStrToDate(Label2.Caption, d) then
F.Date := d
else
F.Date := Date();
F.Date := EncodeDate(2023,StrToInt(Monat), 1);
F.Language := lgGerman;
F.Colors.ArrowColor := clBlue;
F.Colors.ArrowBorderColor := clNavy;
F.StartingDayOfWeek := dowMonday;
F.Options := F.Options + [coNoMonthChange] + [coNoOtherMonthDays];
if F.Execute then
Label2.Caption := DateTostr(F.Date);
Edit2.Text:= DateTostr(F.Date);
finally
F.Free;
end;
end;

Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Re: Problem mit Kalenderfuntion

Beitrag von Justuv »

Korrektur: natürlich 12-6-24 !

Benutzeravatar
theo
Beiträge: 10916
Registriert: Mo 11. Sep 2006, 19:01

Re: Problem mit Kalenderfuntion

Beitrag von theo »

Probier mal so:

Code: Alles auswählen

uses
  clocale, Classes,...

Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Re: Problem mit Kalenderfuntion

Beitrag von Justuv »

Danke, funktioniert. Wird also nur bei Linux benötigt? Aber ok, alles gut.

Jürgen

. . . Wenn nur alles immer so einfach wäre . . .

Benutzeravatar
Ally
Beiträge: 283
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Problem mit Kalenderfuntion

Beitrag von Ally »

Oder mit FormatDateTime wie man es gerade gerne hätte.

Code: Alles auswählen

Datum := FormatDateTime('dd.mm.yyyy', Now);
Uhrzeit := FormatDateTime('hh:nn:ss', Now);
DatumUhrzeit := FormatDateTime('dd.mm.yyyy hh:nn:ss', Now);

Benutzeravatar
theo
Beiträge: 10916
Registriert: Mo 11. Sep 2006, 19:01

Re: Problem mit Kalenderfuntion

Beitrag von theo »

Oder vor dem Aufruf so:

Code: Alles auswählen

DefaultFormatSettings.ShortDateFormat:= 'dd"."mm"."yyyy';        
Der Vorteil von clocale ist aber, dass sich die Ausgabe den Benutzereinstellungen des Betriebssystems anpasst und nicht von der Anwendung "erzwungen" wird.

Antworten