Mega Code Archive

 
Categories / Delphi / System
 

How to Show Week Numbers in a TDateTimePicker

Title: How to Show Week Numbers in a TDateTimePicker 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 // set style to include week numbers Style := GetWindowLong(CalendarHandle, GWL_STYLE); SetWindowLong(CalendarHandle, GWL_STYLE, Style or MCS_WEEKNUMBERS); FillChar(ReqRect, SizeOf(TRect), 0); // get required rect Win32Check(MonthCal_GetMinReqRect(CalendarHandle, ReqRect)); // get max today string width MaxTodayWidth := MonthCal_GetMaxTodayWidth(CalendarHandle); // adjust rect width to fit today string if MaxTodayWidth ReqRect.Right then ReqRect.Right := MaxTodayWidth; // set new height & width SetWindowPos(CalendarHandle, 0, 0, 0, ReqRect.Right, ReqRect.Bottom, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOZORDER); end; end;