FMonthCal

Erstellt ein Monats-Kalender - Control

PropertyDatentyp(Read/Write)Hinweise
LeftInteger (R/W) Linke Position
TopInteger (R/W) Obere Position
WidthInteger (R/W) Weite
HeightInteger (R/W) Höhe
ClientHeightInteger (R) Höhe des Clientbereiches
ClientWidthInteger (R) Breite des Clientbereiches
VisibleInteger (R/W) TRUE = sichtbar (voreingestellt) ; FALSE = nicht sichtbar
EnabledInteger (R/W) TRUE = aktiv (voreingestellt) ; FALSE = inaktiv
ColorUInteger (R/W) Hintergrundfarbe des Kalenders
TextColorUInteger (R/W) Textfarbe des Kalender
HandleHWND (R) Handle des Control (nur lesen !)
CtHandleHWND (R) Handle des Containers (nur lesen !)
alle visuellen Control haben ein eigenes unsichtbares Container Elternfenster
TipString (W) Der hier zugeordnete String wird als ToolTip angezeigt
TitleColorUInteger (R/W) Hintergrundfarbe der Titelzeile des Kalender
TitleTextColorUInteger (R/W) Textfarbe der Titelzeile des Kalender
CurSel String (R/W) Aktuell ausgewähltes Datum. Der Rückgabestring hat das Format: mm/dd/yyyy/dw
(Monat/Tag/Jahr/Wochentag). Wochentag als Zahl: 0=Sonntag,1=Montag, 2=Dienstag .... 6=Samstag.
Soll das Datum hier gesetzt werden, muss der String das Format mm/dd/yyyy ohne dw(Wochntag) haben !
CurDay String (R/W) Datum in "Heute" . Der Rückgabestring hat das Format: mm/dd/yyyy/dw
(Monat/Tag/Jahr/Wochentag). Wochentag als Zahl: 0=Sonntag,1=Montag, 2=Dienstag .... 6=Samstag.
Soll das Datum hier gesetzt werden, muss der String das Format mm/dd/yyyy ohne dw(Wochntag) haben !
NoToDay Integer (R/W) True oder False. ( true = ohne "Heute" - Zeile)
Border Integer (R/W) Umrandung. 0=ohne, 1=Linie , 2 = Sunken
SUB ArgumenteHinweis
Create (ByVal hParent As HWND,
ByVal x As Integer,
ByVal y As Integer)
Elternfenster
Pos. links
Pos. Top
Weite und Höhe werden automatisch berechnet, diese sind von Schriftart und ob ToDay verwendet wird oder nicht, abhängig.
Invalidate keine Veranlasst das senden einer WM_PAINT Botschaft
Repaint keine Wie Invalidate aber mit Nicht-Clientbereich
setFont (Face As String,
ByVal size As Integer,
ByVal bold As Integer,
ByVal italic As Integer,
ByVal underlin As Integer)
Schrift-Name
Schriftgröße
1=bold,0=normal
1=italic,0=normal
1=underlin,0=normal
Event SUBArgumenteHinweis
onSelChange(CalPick as String) Datum wird geändert.
Der Rückgabestring hat das Format: mm/dd/yyyy/dw
(Monat/Tag/Jahr/Wochentag). Wochentag als Zahl: 0=Sonntag,1=Montag, 2=Dienstag .... 6=Samstag.
Hinweis: Wenn dieser Event direkt eine Messagebox aufruft und mit dem ScrollButton ein anderer Monat gewählt wird, kommt es zur unendlichen Wiederholung des Events der nicht stoppbar ist. Dieser Bug tritt auch in anderen Sprachen (zB. Powerbasic ) auf. Dagegen macht z.B. das Setzen der Caption eines beliebigen Control o. andere Aktionen, keine Probleme.
onSelect(CalPick as String) Datum wird geändert.
Der Rückgabestring hat das Format: mm/dd/yyyy/dw
(Monat/Tag/Jahr/Wochentag). Wochentag als Zahl: 0=Sonntag,1=Montag, 2=Dienstag .... 6=Samstag.

Ein Control mit mehreren Kalender:
Das ist möglich, indem die Größe nach Create geändert wird. Beispiel:

    ....
kal2.Create(form1.Handle,kalender1.Width+16 ,10)
Dim as Integer iWidth = kal2.Width
kal2.Width = (iWidth * 3) + 12 ' Padding zwischen den Kalendern ist meist 6 px - probieren'
....

 

Beispie:
        #Include "winFBgui.bi"


        Dim Shared As FForm form1
        Dim Shared As FMonthCal kalender1,kal2
        Dim Shared As fButton btn1

        Sub kalender1_Change( newDate As String)
        	MessageBox(0, newDate ,"Inf",MB_OK)
        End Sub

        Sub btn1_Click
        	form1.FormClose
        End Sub

        ' Fenter erstellen
        form1.Create("Test 1",90,90,480,400)
        form1.Color = &HFFBFBF

        kalender1.Create(form1.Handle,10,10)
        kalender1.Border = 2
        kalender1.SetFont("Arial",16,0,0,0)
        kalender1.onSelect = @kalender1_Change
        kalender1.Color = &HFFE0D0
        kalender1.TextColor = &H000FBF

        kal2.Create(form1.Handle,kalender1.Width+16 ,10)
        kal2.TitleColor = &HFF
        kal2.TitleTextColor = &HFFFFFF


        btn1.create(Form1.Handle,"Exit",80,300,100,30)
        btn1.onClick = @btn1_Click
        										'
        '----------------------------------------------------------
        ' alles anzeigen
        form1.Show
        ExitProcess(0)
        End

Beispiel