Hallo, ich habe bei den Schweizern den folgenden Code gefunden:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| uses CommCtrl;
type THackCommonCalendar = class(TCommonCalendar);
procedure TForm1.DateTimePicker1DropDown(Sender: TObject); var Style: Integer; ReqRect: TRect; MaxTodayWidth: Integer; begin with THackCommonCalendar(Sender as TDateTimePicker) do begin Style := GetWindowLong(CalendarHandle, GWL_STYLE); SetWindowLong(CalendarHandle, GWL_STYLE, Style or MCS_WEEKNUMBERS); FillChar(ReqRect, SizeOf(TRect), 0); Win32Check(MonthCal_GetMinReqRect(CalendarHandle, ReqRect)); MaxTodayWidth := MonthCal_GetMaxTodayWidth(CalendarHandle); if MaxTodayWidth > ReqRect.Right then ReqRect.Right := MaxTodayWidth; SetWindowPos(CalendarHandle, 0, 0, 0, ReqRect.Right, ReqRect.Bottom, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOZORDER); end; end; |
Ich hätte das aber gerne als einstellbare Option bei der Komponente. Wie kann man das bewerkstelligen?
Ich habe bereits eine Klasse dtp von DateTimePicker abgeleitet und mit eigenen Eigenschaften ausgestattet, die Anzeige der Kalenderwochen in der Droppdown-Liste macht mir allerdings Probleme.
Danke für eure Mitthilfe