zarquon hat geschrieben:Wie sage ich einem TCalendar, bzw. zweien davon das es mir den jeweils aktuellen und den nächsten Monat anzeigen soll?
Code: Alles auswählen
procedure TForm1.Calendar1MonthChanged(Sender: TObject);
begin
Calendar2.DateTime := EncodeDate(YearOf(IncMonth(Calendar1.DateTime, 1)),
MonthOf(IncMonth(Calendar1.DateTime, 1)),
DayOf(Calendar2.DateTime));
end;
procedure TForm1.Calendar2MonthChanged(Sender: TObject);
begin
Calendar1.DateTime := EncodeDate(YearOf(IncMonth(Calendar2.DateTime, -1)),
MonthOf(IncMonth(Calendar2.DateTime, -1)),
DayOf(Calendar1.DateTime));
end;
Aufpassen, dieser Code hat keinerlei Prüfungen ob das neu encodierte Datum auch tatsächlich existiert. Wenn der 31 ausgewählt ist, wird es zum Beispiel zu Problemen kommen. Auf die Schnelle kann man das lösen indem an Stelle des
DayOf(Calendar2.DateTime) einfach
1 setzt (und analog in der zweiten Methode beim
DayOf(Calendar1.DateTime)). Dann bleibt aber halt nicht der ausgewählte Tag erhalten. Aber eine passende Prüfung, kann der geneigte Leser natürlich auch selber formulieren.
