www.ClickEXE.de Click.EXE - In 5 Minuten zum eigenen Programm!
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
34917 Posts & 6321 Themen in 35 Foren
Benutzername/Passwort:
  Login speichern
Forenübersicht » Click.EXE 4.0 » cX4: Beispielskripte im cX2Web-Format » DateTimePicker-Messages

vorheriges Thema   nächstes Thema
2 Posts in diesem Thema (offen)
Seiten (1): (1)
Autor
Beitrag
Findus ist offline Findus  
DateTimePicker-Messages
130 Beiträge - Profi-Clicker
Einige Messages des DateTimePickers haben wir ja schon kennengelernt.

Zum einen die DTM_GETMCCOLOR und die DTM_GETMCCOLOR, mit der man die Farben des Kalenders auslesen und setzen kann. Wobei ich im vorangegangenen Beispiel noch einen Parameter vergessen hatte, und zwar kann man mit der 5 im wParam die Farbe der Tage des Vor- und Folgemonats, die ja auch im Monatskalender angezeigt werden, bestimmen und auslesen.

Desweiteren haben wir die MCM_GETCURSEL - Message kennengelernt, mit der man das gewählte Datum auslesen kann. Rein rechtlich gesehen gehört die MCM_GETCURSEL dem Monatskalender (MonthCalendarMessage), deshalb bekommt sie für den DateTimePicker den Namen DTM_GETSYSTEMTIME mit gleichem Wert: &H1001

DTM_SETSYSTEMTIME - Message &H1002

Mit dieser Message kann man den Kalender oder die Uhrzeit setzen.

Setze in [RET_SysTimeSend]: '[System.DLLAufruf user32.dll;SendMessageA;[PICK_Nummer];[DTM_SETSYSTEMTIME];[Valid_Flag];Struktur(SystemTime)._Daten=[Struktur(SystemTime)._Daten]?]'

Wie wir sehen, wird bei dieser Message ein [Valid_Flag] im wParam mitgegeben. Mit diesem Valid_Flag wird dem DateTimePicker mitgeteilt, ob die Daten übernommen werden sollen oder nicht. Ist dieser Wert 0, so übernimmt der DateTimePicker die Daten, ist der Wert 1, so werden die Daten nicht übernommen und bei angezeigter Ckeckbox wird der Haken entfernt.
Das Valid_Flag ist folgendermaßen definiert:

GDT_VALID = 0 Daten werden übernommen
GDT_NONE = 1 Daten werden nicht übernommen, Checkboxhaken entfernen


Die DTM_SETFORMAT - Message &H1005

Diese Message formatiert die Textdarstellung für Datum und Uhrzeit durch Formatbezeichner. Ebenfalls können benutzerdefinierte Texte eingegeben werden.
Das Format wird als Pointer auf den Formatstring an das DateTimePicker-Element gesendet. Also folgendermaßen:

Setze in [Return_Format]: '[System.DLLAufruf user32.dll;SendMessageA;[PICK_Nummer];[DTM_SETFORMAT];0;Formatstring=[Formatstring]]'

Die Formatbezeichner:

d: Stellt den Tag eines Monats als Zahl von 1 bis 31 dar. Einstellige Tage werden ohne führende Null formatiert.
dd: Stellt den Tag eines Monats als Zahl von 01 bis 31 dar. Einstellige Tage werden mit einer führenden Null formatiert.
ddd: Stellt den abgekürzten Namen des Wochentags dar. Z.B. Mo für Montag
dddd: Stellt den vollständigen Namen des Wochentags dar
h: Stellt die Stunde als Zahl von 1 bis 12 dar. Einstellige Stunden werden ohne führende Null formatiert
hh: Stellt die Stunde als Zahl von 01 bis 12 dar. Einstellige Stunden werden mit einer führenden Null formatiert.
H: Stellt die Stunde als Zahl von 0 bis 23 dar. Einstellige Stunden werden ohne führende Null formatiert.
HH: Stellt die Stunde als Zahl von 00 bis 23 dar. Einstellige Stunden werden mit einer führenden Null formatiert.
m: Stellt die Minute als Zahl von 0 bis 59 dar. Einstellige Minuten werden ohne führende Null formatiert.
mm: Stellt die Minute als Zahl von 00 bis 59 dar. Einstellige Minuten werden mit einer führenden Null formatiert.
M: Stellt den Monat als Zahl von 1 bis 12 dar. Einstellige Monate werden ohne führende Null formatiert.
MM: Stellt den Monat als Zahl von 01 bis 12 dar. Einstellige Monate werden mit einer führenden Null formatiert.
MMM: Stellt den abgekürzten Namen des Monats dar. Z.B. Apr für April
MMMM: Stellt den vollständigen Namen des Monats dar.
s: Stellt die Sekunden als Zahl von 0 bis 59 dar. Einstellige Sekunden werden ohne führende Null formatiert.
ss: Stellt die Sekunden als Zahl von 00 bis 59 dar. Einstellige Sekunden werden mit führender Null formatiert.
y: Stellt das Jahr als ein- oder zweistellige Zahl dar. Z.B. 8 für 2008, 10 für 2010
yy: Stellt das Jahr zweistellige Zahl dar. Z.B. 08 für 2008, 10 für 2010
yyyy: Stellt das Jahr vierstellige Zahl dar.


Aufbau des Formatstrings:

1. Die Formatierung wird in Anführungszeichen ("Formatstring") eingefasst.
2. Benutzerdefinierter Text wird in eingestrichene Anführungszeichen ('Text') eingefasst. Dadurch wird verhindert, dass Formatierungszeichen im Text aufgelöst werden.
3. Groß- Kleinschreibung muss beachtet werden

Beispiel: Die Formatierung "Datum: dd .MM. yyyy" würde z.B. Dau47: 12.04.2010 anzeigen, da das m im Text Datum die Minuten auflösen würde. Setzt man jetzt den Text Datum: in eingestrichene Anführungszeichen 'Datum:' passiert das nicht.

Wie ihr seht, machen die 64 Style-Kombinationen keinen Sinn, da man die Formatierung ändern kann. Besser ist es, die einzelnen Flags zu setzen, um den DateTimePicker nach eigenen Wünschen zu erstellen.

Weitere Messages

Es gibt noch ein paar andere Messages, die aber 1. nicht unbedingt erforderlich sind und 2. kompliziert aufzubauen sind. Der Vollständigkeitshalber will ich sie hier noch erwähnen:

DTM_GETRANGE = &H1003
DTM_SETRANGE = &H1004

Diese Nachrichten geben den minimalen und maximalen auswählbaren Datumswert an. Hierbei wird ein Pointer zu einem Array der SystemTime-Struktur übergeben.

DTM_GETMONTHCAL = &H1008

Diese Nachricht holt das Fenterhandle des Kalenders, wenn er aufgeklappt ist.

DTM_GETMCFONT = &H1009
DTM_SETMCFONT = &H100A

Mit diesen Nachrichten kann eine Schriftart für den Kalender angegeben oder ausgelesen werden. Die Schriftart wird mittels Pointer übergeben oder ausgelesen.


Das eigefügte Code erstellt eine Zip-Datei. In dieser Datei befindet sich das Testprogramm

DTMessages_oR.EXE ohne Laufzeitmodul

mit dem ich das DateTimePicker-Element getestet habe.

Das Programm veranschaulicht nochmal alle Messages und Styles. Ihr könnt Farben wählen (Farbe anklicken) und senden, Formatstrings senden, Styles über Style-Nummer oder Flags setzen, Datum Auslesen und Setzen.......

Viel Spaß wünscht
Findus


cX2Web-Code: (einfach anklicken, kopieren und in ... einfügen)
Erstellt mit cX2Web - cX4 WebExport V3 (12 Skriptzeilen, cX Premium 4.0.4.1)



Der Post wurde 2 mal editiert, zuletzt von Findus am 12.04.2010 - 16:50.
Beitrag vom 12.04.2010 - 16:42
Diesen Beitrag melden   nach weiteren Posts von Findus suchen Findus`s Profil ansehen Findus eine E-Mail senden Findus eine Kurznachricht senden Findus zu deinen Freunden hinzufügen zum Anfang der Seite
BoB ist offline BoB  
135 Beiträge - Profi-Clicker
ich bekomme nach dem Speichern des ZIP Files immer den Fehler "Control "kalender" konnte nicht registriert werden was mache ich falsch?
Beitrag vom 18.08.2010 - 11:00
Diesen Beitrag melden   nach weiteren Posts von BoB suchen BoB`s Profil ansehen BoB eine E-Mail senden BoB eine Kurznachricht senden BoB zu deinen Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen anzeigen
Seiten (1): (1)
vorheriges Thema   nächstes Thema

Gehe zu:  
Es ist / sind gerade keine registrierte(r) Benutzer und 54 Gäste online. Neuester Benutzer: Running
Alles gute zum Geburtstag    Wir gratulieren ganz herzlich zum Geburtstag:
Felix-1 (57)
aktive Themen der letzten 48 Stunden - Top-User
0
0

www.ClickEXE.de © 2018
Seite in 0.15276 sec generiert