hab gerade eine kleine Kalenderanwendung fertig.
Da ich meine Kenntnisse verbessern möchte, wollte ich um eure Anregungen, Kritik bitten.
Code: Alles auswählen
EnableExplicit
Procedure Tage_im_Monat(Jahr.i)
If OpenWindow(0, 100, 200, 800, 700, "Kalender " + Str(Jahr), #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If PanelGadget(1, 10, 10, 780,680)
Protected Tage.i, k.i, Ergebnis.i, i.i, Event.i, Quit.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(1, k, Monat(k) ) ;panelgadget beschriftung
ListIconGadget(2+k, 10, 10, 750, 630, "Wochentag",100) ;Listicongadget beschriftung
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
AddGadgetItem(2+k,-1,Str(i) + " " + Tagtext) ;listicon einträge hinzufügen
Next
Next
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
EndIf
EndProcedure
Tage_im_Monat(2012)
vor allem geht es mir um die Schleifen und die Straffung des codes.
wäre für Euer feedback sehr dankbar.
PS.
das Fenster ist nur zu demozwecken in der Procedure mit eingebaut