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)