Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MonthCalendar und DateTimePicker (Probem) (https://www.delphipraxis.net/111374-monthcalendar-und-datetimepicker-probem.html)

hesubat 2. Apr 2008 13:55


MonthCalendar und DateTimePicker (Probem)
 
Der Monthcalendar ist mit Mausklick zu steuern, der DateTimePicker kann mit Cursortasten gesteuert werden. Ein Mausklick auf dem DateTimePicker schliesst das Kalenderbild und uebernimmt den angeklickten Tag in die einzelne Zeile.

Nun meine Frage: Gibt es eine Routine, die eine Reaktion der Cursortasten bei dem Monthcalendar bewirkt, also den gleichen Zugriff ermoeglicht wie beim DateTimePicker ?

Alternativfrage: Gib es eine Routine, die beim DateTimePicker eine Schliessung des Kalenderbildes bei Mausklick verhindert ?

himitsu 24. Apr 2008 14:43

Re: MonthCalendar und DateTimePicker (Probem)
 
Zitat:

Zitat von hesubat
Nun meine Frage: Gibt es eine Routine, die eine Reaktion der Cursortasten bei dem Monthcalendar bewirkt, also den gleichen Zugriff ermoeglicht wie beim DateTimePicker ?

Jaein

fertig nicht (abgesehn von Fremdkomponenten, wo sowas eingebaut wurde)

Lösung: Tasten abfangen und den Kalender entsprechend steuern

Zitat:

Zitat von hesubat
Alternativfrage: Gib es eine Routine, die beim DateTimePicker eine Schliessung des Kalenderbildes bei Mausklick verhindert ?

Mausklick abfangen und nicht an die Komponente weiterleiten.


Erstes läßt sich z.B. über OnKeyPress oder OnKeyDown/OnKeyUp realisieren und für Zweiteres mußt du dir eine eigene FensterProzedur erstellen und diese einpinden (z.B. MSDN-Library durchsuchenSetWindowLong)

hesubat 25. Apr 2008 12:25

Re: MonthCalendar und DateTimePicker (Probem)
 
Hallo himitsu,

ich danke fuer Deine Antwort, komme jedoch nicht ganz klar damit. Du sagst: Maus abfragen und nicht an die Komponente weiterleiten. Wie??

Die Mausabfrage unter on_key_down muesste aussehen wie unten.

if (key=VK_LBUTTON) or (key=VK_RBUTTON) then datetimepicker1.?????;

Sobald ich eine Maustaste auf dem datetimepicker klicke, ist doch der Code schon an diesen weitergeleitet. Oder sehe ich das falsch?

hesubat 25. Apr 2008 17:49

Re: MonthCalendar und DateTimePicker (Probem)
 
Hallo himitsu,

heureka

dank Deiner Hilfe und einer Korrektur meiner Gedanken ist das Problem nun endlich geloest. Mein Fehler war, die Routine 'on key down' auf den MonthCalendar anzuwenden. Dabei tat sich nichts, weshalb ich um Hilfe verlegen war. Nun habe ich diese Routine auf die Mainform (Form1) angewendet, den Keys vk_up, vk_down, vk_right und vk_left die Aenderungswerte -7, +7, +1 und -1 fuer den MonthCalendar zugewiesen (monthcalendar.date geaendert) und es funzt jetzt.
Nochmals meinen Dank und beste Gruesse

:firejump:

himitsu 26. Apr 2008 18:46

Re: MonthCalendar und DateTimePicker (Probem)
 
gut daß es dennoch ging :)


zu der abgefangenen Maus:
tja, wie du schon bemerkt hast, ist es in den Delphi-Events zu spät.
drum mein Hinweis auf SetWindowLong ... man müßte also eine eigene WindowProzedur vor die des MonthCal-Objects einschieben ... siehe MSDN-Library durchsuchenGWL_WNDPROC

hesubat 26. Apr 2008 22:04

Re: MonthCalendar und DateTimePicker (Probem)
 
Mein Sohn ist Diplom-Informatiker und versucht seit geraumer Zeit, mich auf die Schiene C++ zu bringen. Mit meinen 62 Jahren und Kenntnissen in Schulenglisch, die man gerade ausreichen, nach dem naechsten Bahnhof zu fragen, ist jede Hilfe oder Erklaerung in Englisch zu sehen wie 'Perlen vor die Saeue werfen'. Und dem Link folgend, den Du geschickt hattest, fand ich mich in einem Wust von mir unverstaendlichen englischsprachigen Angeboten zu SetWindowLong wieder. Nein, das raffe ich nicht mehr. Ich wuesste schon nicht, wo mit der Suche bei SetWindowLong beginnen.
Danke nochmals. Vielleicht trifft man sich mal hier wieder. Wuerde mich freuen.
Solong. :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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