Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von AUGE_OHR »

hi,

wenn ich mir den GETDAYSTATE Event ansehe bekomme ich "komische" Datum Werte.
ich frage mich ob das was mit Gregorian Calendar zu tun haben könnte ?

p.s. habe den "Titel" angepasst
Zuletzt geändert von AUGE_OHR am So, 14. Sep 2008 2:30, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Gregorian Calendar

Beitrag von brandelh »

Hallo Jimmy,

wir in Europa und in den USA nutzen alle den gregorianischen Kalender ;-)

Wenn ich heute (13.09.2008) mein Testprogramm starte, welches mit

Code: Alles auswählen

   ::oDateShow:GetDayBold := {|dDate,nAnz,aValue| qout(dDate,nAnz,aValue) }
den callback codeblock zur Ausgabe nutzt, erhalte ich auf einem Kalender mit der ausgegrauten Anzeige der letzten Woche des Vormonats genau den ersten sichtbaren (grauen) Tag geliefert: 25.08.2009, 42 (Tage werden angezeigt),
{N,N,...} ich denke mal 42 N sind sichtbar, aber die Länge dieses Array ist so lang, dass es keine .t./.f. sein können.

Hier das Bild: Bild

Ich hänge mal den Code an, mit dem ich gearbeitet habe:
Dateianhänge
Kalender_ActiveX.zip
(5.93 KiB) 243-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Gregorian Calendar

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben: wir in Europa und in den USA nutzen alle den gregorianischen Kalender ;-)
ich war das wohl auf dem falschen Weg ...
brandelh hat geschrieben: Wenn ich heute (13.09.2008) mein Testprogramm starte, welches mit

Code: Alles auswählen

   ::oDateShow:GetDayBold := {|dDate,nAnz,aValue| qout(dDate,nAnz,aValue) }
den callback codeblock zur Ausgabe nutzt, erhalte ich auf einem Kalender mit der ausgegrauten Anzeige der letzten Woche des Vormonats genau den ersten sichtbaren (grauen) Tag geliefert: 25.08.2009, 42 (Tage werden angezeigt),
{N,N,...} ich denke mal 42 N sind sichtbar, aber die Länge dieses Array ist so lang, dass es keine .t./.f. sein können.
es sind 588 bei einem 1 x Monat Calendar :)

die ersten beiden Parameter können nützlich sein, aber auch die brauche ich bei meinem
3 Monats Calendar nicht. vielmehr nutze ich den ::oMonthView:value weil der mir ja das
neue Datum für mein SEEK(SUBSTR(DTOS(value),1,6)) // YYYYMM gibt den ich BOLDen
will.

Ich will damit Termine BOLDen und die stehen ja nun in meiner DBF.
Warum soll ich also "sein" BOLD Array füllen wenn ich die Property
"direkt" setzten kann ? ( SEEK/ FOUND / SETProperty )

klar das ist nicht "der" Weg, aber führen nicht viele Wege nach Rom ?

einziges Problem : :MinDate und :MaxDate sollten einen grossen Bereich haben sonst
kommt man bei dem 3 Monats Calendar schnell an ein "out of Range"
brandelh hat geschrieben: Ich hänge mal den Code an, mit dem ich gearbeitet habe:
gute Idee ... jetzt gehen ja Attachments :)
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Gregorian Calendar

Beitrag von brandelh »

die ersten beiden Parameter können nützlich sein, aber auch die brauche ich bei meinem
3 Monats Calendar nicht. vielmehr nutze ich den ::oMonthView:value weil der mir ja das
neue Datum für mein SEEK(SUBSTR(DTOS(value),1,6)) // YYYYMM gibt den ich BOLDen
will.
wenn man den 'richtigen' Weg geht, wird der Kalender bei jedem refresh die richtigen Werte anzeigen (z.B. nach dem Überdecken mit einem anderen Fenster), daher wäre es schon nützlich es ihm richtig unter zu schieben.
Aber wenn man die einzelnen Tage sauber setzen kann, nachdem ein Event ausgelöst wurde ist das auch ok.
Allerdings hatte ich bei meinen Test in diese Richtung ein seltsames Verhalten ausgelöst, der aktive Tag im Kalender flüchtete vor mir :roll: - eventuell kann man ja auch mehrere Tage mit einem Befehl setzen ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Gregorian Calendar

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben: wenn man den 'richtigen' Weg geht, wird der Kalender bei jedem refresh die richtigen Werte anzeigen (z.B. nach dem Überdecken mit einem anderen Fenster), daher wäre es schon nützlich es ihm richtig unter zu schieben.
lass ihn doch erstmal "sein" refresh "fertig machen" ... und dann kommst du
brandelh hat geschrieben: Aber wenn man die einzelnen Tage sauber setzen kann, nachdem ein Event ausgelöst wurde ist das auch ok.
und "malst" deine BOLD auf den Kalender
brandelh hat geschrieben: Allerdings hatte ich bei meinen Test in diese Richtung ein seltsames Verhalten ausgelöst, der aktive Tag im Kalender flüchtete vor mir :roll: - eventuell kann man ja auch mehrere Tage mit einem Befehl setzen ...
... genau das hatte ich auch bemerkt und zwar auf meinem Notebook. Der ist mit 400Mhz
zwar schnell genug zum surfen, aber der aufbau unter Xbase++ dauert ...

und da sah ich doch wie er die BOLD malte ... und dann waren die "weg" ? also ein SLEEP
eingebaut und "ich sehe es doch" und ... weg ???

also der Trick ist nun das man den GetDayBold Slot nur für die Zuweisung von :MinDate
und :MaxDate benutzt und ihm dann einen PostAppEvent(MY_WAY) schickt um die
nächste Aktion auszulösen ... und die wäre "male" BOLD :)

... auch am 20081003 ... was ist den da ?

p.s. ich habe dein *.XFF nicht öffnen können, Totalabsturz vom XppFD.EXE
ich wollte eigendlich nur die :Licence Keys einfügen sonst läuft das ganze ja nicht
unter VISTA. Habe es jetzt "manuell" gemacht was natürlich nicht im Sinne des XppFD ist

@Moderatoren : könnte man nicht diesen und die beiden "Vorgänger" Threads zusammen
in die Wissensbasis verschieben ?
Dateianhänge
MY_WAY.ZIP
Xbase++ v1.9x MonthView Date- / Time Picker Beispiel mit BOLD
für Sa / So und Feiertage
!!! Benötigt MSCOMCT2.OCX !!!
(5.2 KiB) 244-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Gregorian Calendar

Beitrag von brandelh »

AUGE_OHR hat geschrieben: ... auch am 20081003 ... was ist den da ?
Ein Feiertag ;-)

http://de.wikipedia.org/wiki/Tag_der_Deutschen_Einheit

Ich denke nicht, dass wir die beiden Threads in die Wissensbasis verschieben sollten.
Wenn du es fertig hast, solltest du das Ergebnis in die Wissensbasis stellen und dort
dann 2 Links auf die Threads setzen ... 'wie alles begann ...' ;-)
Gruß
Hubert
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von Muecke »

Hallo zusammen,

Ist es auch möglich das Datum mit dem ::oTimePicker abzufragen ohne zuerst in ::oDateShow das Datum anzuklicken.

Gibts da was? Wo kann ich dies nachlesen.

So könnte ich auf meinem Dialog Platz sparen.

Gruss Thomas
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von brandelh »

Hi,

der DateTime-Picker ist ja ein SLE, das den Kalender erst nach anklicken wie bei einer Combobox anzeigt,
somit bräuchtes du den Platz nicht dauerhaft vorhalten. Zusätzlich kann man das Datum aber auch per Hand eingeben
und natürlich per Programm setzen und abfragen. Ich habe eine CHM Datei erstellt und zum Download freigegeben (in meinerm ersten ActiveX Thread ...

http://www.xbaseforum.de/viewtopic.php?f=28&t=2578

und hier noch eine Umfrage zur Frustbekämpfung ;-)

http://www.xbaseforum.de/viewtopic.php?f=28&t=2590
Gruß
Hubert
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von Muecke »

Hubert,

Dier CHM datei hab ich runtergeladen. Nur fehlt mir der Text für die Erklärungen.
Ich weiss nicht was da Falsch sein kann, um die Hilfe richtig angezeigt zu bekommen.

Gruss Thomas
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von AUGE_OHR »

hi,
Muecke hat geschrieben: Dier CHM datei hab ich runtergeladen. Nur fehlt mir der Text für die Erklärungen.
Ich weiss nicht was da Falsch sein kann, um die Hilfe richtig angezeigt zu bekommen.
rechte Maustaste / Eigenschaften / Sicherheit freigeben
gruss by OHR
Jimmy
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von Muecke »

Besten Dank es funkt.

Gruss Thomas
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von brandelh »

Hallo Muecke,

kann es sein, dass du nicht 'Ziel speichern' gewählt hast ?
Beim einfachen anklicken wird die Datei vom Server direkt gestartet (auf vom WWW-Server) ...
Gruß
Hubert
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von Muecke »

Hallo Hubert,

Ich hab die Datei runtergeladen und gespeichert.
Danach hab ich wie oben, von Jimmy´s Tip, die Sicherheit freigeben und es funktioniert .

Gruss Thomas
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Xbase++ ActiceX Gregorian Calendar with MSCOMCT2.OCX

Beitrag von AUGE_OHR »

hi,

es ist doch noch ein "kleiner BUG" drin.

man kann ja, im Title, direkt auf den Monat clicken, um damit einen Monat auszuwählen.

Das wird nun durch :MinDate / :MaxDate "falsch beschränkt" sodass er sich nur +/- 1 Monat
"bewegt" egal welchen Monat man nimmt.

Ich brauche das für meinen 3 Monats Kalender, aber das Sample zeigt ja nur 1 Monat.

folgenden Änderungen sind deshalb "besser" :

a.) lege die Class VAR dCalDay und VAR nCalDays

b.)

Code: Alles auswählen

METHOD NewForm:GetDayState(dDate,nDays,aDayState)
   ::dCalDay   := dDate
   ::nCalDays  := nDays
RETURN aDayState
c.)

Code: Alles auswählen

METHOD NewForm:SetDayState()
LOCAL dStartDay := ::dCalDay
LOCAL dMin      := ::dCalDay
LOCAL nAnz      := ::nCalDays
LOCAL dMax      := ::dCalDay+nAnz
gruss by OHR
Jimmy
Antworten