![]() |
DateTimePicker, Kalenderwoche, Vista, falsche Darstellung
Hallo #,
mit folgendem Code (aufgerufen im OnDropDown) kann zur Laufzeit bei einem DateTime Picker links die Kalenderwoche zusätzlich angezeigt werden.
Delphi-Quellcode:
Unter Vista wird aber der Sonntag nicht mehr komplett angezeigt ;(
{
name: DTP_AddWeekNumber usage: to add a week number column to the calendar parameter: theDTP return parameter: return: notes: - method mustbe called in OnDropDown dunit: no } procedure DTP_AddWeekNumber(theDTP: TDateTimePicker); const MCM_GETMAXTODAYWIDTH = MCM_FIRST + 21; var Style: LongInt; hDTP: THandle; r: TRect; intTodayWidth: Integer; begin // Notlösung unter Vista // if IsWindowsVista then Exit; {to get a handle of calendar} hDTP := DateTime_GetMonthCal(theDTP.Handle); {change a style} Style := GetWindowLong(hDTP, GWL_STYLE); SetWindowLong(hDTP, GWL_STYLE, Style or MCS_WEEKNUMBERS); {now we must change the width for calendar because week numbers shifted all strings} {1. to get the required rect } r := Rect(0, 0, 0, 0); SendMessage(hDTP, MCM_GETMINREQRECT, 0, Longint(@r)); {2. to get the maximum width of the "today" string} intTodayWidth := SendMessage(hDTP, MCM_GETMAXTODAYWIDTH, 0, 0); {3. adjust rect width to fit the "today" string } if intTodayWidth > r.Right then r.Right := intTodayWidth; {4. to set new the height and width } SetWindowPos(hDTP, 0, r.Left, r.Top, r.Right-r.Left, r.Bottom-r.Top, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOZORDER); end; { DTP_AddWeekNumber } Hat jemand die KW-Anzeige unter Vista schon zum Laufen bekommen ? Meine "Notlösung": unter Vista nicht anzeigen ;( Heiko |
Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun
Hi Hoika,
wo sind denn die Messages MCS_First usw. definiert. Ich kriege das unter BDS 2006 nicht compiliert. mfg CG |
Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun
Hi
Falls du die Jedis hast dann nehm einfach den JVDateTimePicker, da kannst du einfach im OI die Kalenderwochen dazuschalten und der wird auch richtig unter Vista dargestellt. Bin nach deinem Fehler auch auf den umgestigen Gruß Sascha |
Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
danke für die Antworten MCM ist in CommCtrl definiert. Ich habe das ganze mal als Test-Projekt angehängt. Ev. muss der Pfad der Exe-Erstellung geändert werden (eine Exe ist natürlich nicht in der Zip vorhanden). Zu Jedi, muss ich mal sehen, ich will eigentlich ohne Fremdkomponenten auskommen, wenn es nicht sein muss. Jaja, ich weiss, ist alles umsonst, opensource, mal sehen. Heiko |
AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung
Gibt es da schon eine Lösung für die Windows Komponente?
|
AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir (Vista 32) wird der Sonntag komplett dargestellt, selbst wenn eine große Schriftgröße gewählt wird.
|
AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung
Es geht hier um die darstellung der Kalendarwcohen im DateTimeppciker, die falsch angezeigt werden, und wo man keine Möglichkeit hat dies zu berücksichtigen :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz