funktioniert leider nicht.
Code: Alles auswählen
EnableExplicit
XIncludeFile "D:\Program Files (x86)\PureBasic (X86)\Includes\esgrid.pbi"
XIncludeFile "D:\Program Files (x86)\PureBasic (X86)\Includes\TabBarGadget.pbi"
IncludePath ""
LoadFont(1, "Arial", 10,#PB_Font_Bold )
Enumeration 20 Step 1
#WINDOW
#PANEL
#GRID
#BTN_ABBRECHEN
#BTN_SPEICHERN
#BTN_DRUCKEN
EndEnumeration
Procedure.i MyCellCallBack(egrid, uMsg, *cellinfo.egridCellInfo)
Protected result
Select uMsg
Case #egrid_NotifyCellType
If *cellinfo\column=0 Or *cellinfo\column=1
*cellinfo\font=FontID(1)
*cellinfo\celltype=#egrid_StaticString ;zelle 0 und 1 sperren
EndIf
Case #egrid_cellUpdated
result=1
Case #egrid_SelectCell
result=#True
InvalidateRect_(GadgetID(egrid),0,0)
Case #egrid_FormatCell
If *cellinfo\row=-1
*cellinfo\textjustification = #egrid_centerText
*cellinfo\font=FontID(1)
EndIf
If *cellinfo\row<>-1 And *cellinfo\row=egrid_SelectedRow(egrid)
*cellinfo\backcolour = $CCFFCC;$A5F4F9
EndIf
If *cellinfo\row <> - 1 ; ist nicht der header
If egrid_GetCellText(egrid, 0, *cellinfo\row) = "Sa" Or egrid_GetCellText(egrid, 0, *cellinfo\row) = "So"
*cellinfo\backcolour = $99CC99
*cellinfo\forecolour=#Red
EndIf
EndIf
Default
result = #True
EndSelect
ProcedureReturn result
EndProcedure
Procedure Tage_im_Monat(Jahr.i)
If OpenWindow(#WINDOW, 10, 10, 1651, 905, "Kalender " + Str(Jahr), #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
ButtonGadget(#BTN_ABBRECHEN,1558,840,80,40,"ABBRECHEN")
ButtonGadget(#BTN_SPEICHERN,10,840,80,40,"SPEICHERN")
ButtonGadget(#BTN_DRUCKEN,200,840,80,40,"DRUCKEN")
;If PanelGadget(#PANEL, 10, 10, 1629,815)
If TabBarGadget(#PANEL, 10, 10, 1629,815, #TabBarGadget_CloseButton|#TabBarGadget_BottomLine)
Protected Tage.i, k.i, Ergebnis.i, i.i, Event.i, Quit.i, Weite.i = 96, GadgetID.i
Protected Tagtext.s
If Jahr % 4 = 0 And (Jahr % 100 <> 0 Or Jahr % 400 = 0) ;auf schaltjahr überprüfen
Tage = 29
Else
Tage = 28
EndIf
Dim Monatstage.i(11) ;array für anzahl der tage
Monatstage(0) = 31
Monatstage(1) = Tage
Monatstage(2) = 31
Monatstage(3) = 30
Monatstage(4) = 31
Monatstage(5) = 30
Monatstage(6) = 31
Monatstage(7) = 31
Monatstage(8) = 30
Monatstage(9) = 31
Monatstage(10) = 30
Monatstage(11) = 31
Dim Monat.s(11) ;array für monatsnamen
Monat(0) = "Januar"
Monat(1) = "Februar"
Monat(2) = "März"
Monat(3) = "April"
Monat(4) = "Mai"
Monat(5) = "Juni"
Monat(6) = "Juli"
Monat(7) = "August"
Monat(8) = "September"
Monat(9) = "Oktober"
Monat(10) = "November"
Monat(11) = "Dezember"
For k = 0 To 11 ;schleife für monate
;AddGadgetItem(#PANEL, k, Monat(k) )
AddTabBarGadgetItem(#PANEL, -1, Monat(k))
;AddTabBarGadgetItem(#PANEL, k, Monat(k));panelgadget beschriftung
egrid_CreateGrid(2+k, 10, 10, 1601, 767, 22,#egrid_NoHeaderButtons|#egrid_GridLines,#egrid_CustomHeader|#egrid_MultiLineText) ;|#egrid_GridLines,#egrid_CustomHeader|#egrid_MultiLineText
egrid_CreateCellCallback(2+k, @MyCellCallBack())
egrid_AddColumn(2+k,0,"Tag",35)
egrid_AddColumn(2+k,1,"",26)
egrid_AddColumn(2+k,2,"Desktop Visualizer", Weite.i)
egrid_AddColumn(2+k,3,"Beamer 1 2500 Ansi Lumen",Weite.i)
egrid_AddColumn(2+k,4,"Beamer 2 2500 Ansi Lumen",Weite.i)
egrid_AddColumn(2+k,5,"Beamer 3 Full HD", Weite.i)
egrid_AddColumn(2+k,6,"Laptop 1", Weite.i)
egrid_AddColumn(2+k,7,"Laptop 2", Weite.i)
egrid_AddColumn(2+k,8,"Overhead 1", Weite.i)
egrid_AddColumn(2+k,9,"Overhead 2", Weite.i)
egrid_AddColumn(2+k,10,"fahrbare Rollbild- leinwand", Weite.i)
egrid_AddColumn(2+k,11,"Flipchart 1", Weite.i)
egrid_AddColumn(2+k,12,"Flipchart 2", Weite.i)
egrid_AddColumn(2+k,13,"Flipchart 3", Weite.i)
egrid_AddColumn(2+k,14,"Pinnwand 1", Weite.i)
egrid_AddColumn(2+k,15,"Pinnwand 2", Weite.i)
egrid_AddColumn(2+k,16,"Pinnwand 3", Weite.i)
egrid_AddColumn(2+k,17,"Moderator Koffer", Weite.i)
egrid_SetHeaderHeight(2+k,50)
egrid_SetOption(2+k, #egrid_HeaderBorderColour, #Red)
egrid_SetOption(2+k, #egrid_SelectionBorderColour, #Blue)
egrid_SetOption(2+k, #egrid_SelectionBorderWidth, 2)
egrid_SetOption(2+k, #egrid_GridLineColour, #Black)
SetActiveGadget(2+k)
egrid_AddRows(2+k,-1, Monatstage(k)) ;100 rows.
For i = 1 To Monatstage(k) ;schleife für anzahl der tage
Ergebnis = DayOfWeek(Date (Jahr,1+k,i,0,0,0)) ;aktueller tag ermitteln
Select Ergebnis ;umwandeln in text
Case 0
Tagtext = "So"
Case 1
Tagtext = "Mo"
Case 2
Tagtext = "Di"
Case 3
Tagtext = "Mi"
Case 4
Tagtext = "Do"
Case 5
Tagtext = "Fr"
Case 6
Tagtext = "Sa"
EndSelect
egrid_SetCellText(2+k, 0, i-1, Tagtext)
egrid_SetCellText(2+k, 1, i-1, Str(i))
Next
Next
Repeat
Event = WaitWindowEvent()
GadgetID = EventGadget()
Select GadgetID
Case #BTN_ABBRECHEN
End
Case #BTN_SPEICHERN
Case #BTN_DRUCKEN
StopDrawing()
EndSelect
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
EndIf
EndProcedure
Tage_im_Monat(2012)