AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi DateTimePicker, Kalenderwoche, Vista, falsche Darstellung
Thema durchsuchen
Ansicht
Themen-Optionen

DateTimePicker, Kalenderwoche, Vista, falsche Darstellung

Ein Thema von hoika · begonnen am 28. Jul 2008 · letzter Beitrag vom 11. Okt 2010
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

DateTimePicker, Kalenderwoche, Vista, falsche Darstellung

  Alt 28. Jul 2008, 16:10
Hallo #,

mit folgendem Code (aufgerufen im OnDropDown)
kann zur Laufzeit bei einem DateTime Picker
links die Kalenderwoche zusätzlich angezeigt werden.



Delphi-Quellcode:
{
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 }
Unter Vista wird aber der Sonntag nicht mehr komplett angezeigt ;(

Hat jemand die KW-Anzeige unter Vista schon zum Laufen bekommen ?
Meine "Notlösung": unter Vista nicht anzeigen ;(


Heiko
Heiko
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun

  Alt 29. Jul 2008, 18:12
Hi Hoika,

wo sind denn die Messages MCS_First usw. definiert. Ich kriege das unter BDS 2006 nicht compiliert.

mfg

CG
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun

  Alt 29. Jul 2008, 20:38
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
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: DateTimePicker, Kalenderwoche, Vista, falsche Darstellun

  Alt 30. Jul 2008, 06:54
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
Angehängte Dateien
Dateityp: zip dtpickertest_124.zip (11,1 KB, 14x aufgerufen)
Heiko
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#5

AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung

  Alt 5. Okt 2010, 21:15
Gibt es da schon eine Lösung für die Windows Komponente?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung

  Alt 9. Okt 2010, 17:18
Bei mir (Vista 32) wird der Sonntag komplett dargestellt, selbst wenn eine große Schriftgröße gewählt wird.
Miniaturansicht angehängter Grafiken
dtpickertest_bild_vista.jpg  
Thomas
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#7

AW: DateTimePicker, Kalenderwoche, Vista, falsche Darstellung

  Alt 11. Okt 2010, 11:26
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
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz