Seite 2 von 2

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 14:21
von NicTheQuick
@Kiffi: Webgadget-Magie geht mal wieder nicht unter Linux ;-)

@¯\_(ツ)_/¯:
Ich habe jetzt keine Zeit mehr da weiter zu basteln. Ich habe trotzdem mal durch deinen Code gescrollt. In Zeile 62 zeigst du immer eine komplette Zeile des Monats an. Das muss natürlich raus, wenn du einzelne Tage einfärben willst, und dafür musst du an dieser Stelle dein DrawTextX immer wieder zurück setzen. Dann musst du das neue DrawText() in Zeile 70 und 72 setzen, wo die Kalenderzeile Stück für Stück zusammengesetzt wird und nach jedem DrawText() dein DrawTextX erhöhen.

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 14:35
von Kiffi
NicTheQuick hat geschrieben:@Kiffi: Webgadget-Magie geht mal wieder nicht unter Linux ;-)
achso, ja das vergesse ich immer wieder. Hätte ich zu Hause an meinem Rechner gesessen, wäre mir das früher aufgefallen. :|

Grüße ... Peter

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 14:58
von ts-soft
WebGadget Magie unter Linux 8)
Bild

Kein Problem hier,

Gruß
Thomas

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 15:26
von RSBasic
[ot]
Profil von ts-soft hat geschrieben:Beiträge insgesamt: 22222
Herzlichen Glückwunsch zu deinem 22.222. Beitrag. Schnapszahl :allright:
[/ot]

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 15:26
von NicTheQuick
ts-soft hat geschrieben: Kein Problem hier,
Was mache ich schon wieder falsch? Mein Fenster friert nur ein.

Übrigens Glückwunsch zu deinem 22222. Beitrag. Wann trinken wir denn mal einen Schnaps? :-D

@RSBasic: Hee, Gemeinheit. Ich wollte das zuerst sagen. :lol:

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 15:27
von RSBasic
@NicTheQuick
Wir hatten wohl den gleichen Gedanken. :D

\\Edit:
NicTheQuick hat geschrieben:Wann trinken wir denn mal einen Schnaps? :-D
Ich trinke heute Abend einen Sambuca auf ihn. :D

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 15:37
von ts-soft
NicTheQuick hat geschrieben:Übrigens Glückwunsch zu deinem 22222. Beitrag. Wann trinken wir denn mal einen Schnaps? :-D
Da kommste über ein Jahrzehnt zu spät, Anti-Alkoholiker :D

Die Schnapszahl sollte jetzt auch wieder weg sein, danke euch, wäre mir gar nicht aufgefallen.

PS: Mit SubSystem QT fehlt die Fensterdekoration, also Titelzeile.

Gruß
Thomas

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 15:54
von RSBasic
@¯\_(ツ)_/¯
Ich habe deinen Code umgebaut und damit ist es möglich, für jedes Datum eine andere Farbe festzulegen. Du musst nur zusätzliche Abfragen eiinbauen, wann du eine andere Farbe haben möchtest:

Code: Alles auswählen

EnableExplicit

LoadFont(0, "Courier New", 10)
LoadFont(1, "Courier New", 10, #PB_Font_Bold)

Procedure showCalendarMonth()
  Protected Date
  Protected DrawTextX
  Protected DrawTextY
  Protected m
  Protected x
  Protected y
  Protected d
  Protected Month
  Protected Year
  Protected DayOfWeek
  
  If StartDrawing(CanvasOutput(0))
    For m=Month(Date()) To 12
      DrawingFont(FontID(1))
      
      DrawTextX = 30
      DrawTextY + 20
      DrawText(DrawTextX, DrawTextY, StringField("Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember", m, ",") + " " + Year(Date()), RGB(0, 0, 0), RGB(255, 255, 255))
      
      DrawTextX = 0
      DrawTextY + 20
      For d=1 To 7
        DrawTextX + 30
        DrawText(DrawTextX, DrawTextY, StringField("Mo,Di,Mi,Do,Fr,Sa,So", d, ","), RGB(0, 0, 0), RGB(255, 255, 255))
      Next d
      
      DrawingFont(FontID(0))
      Date = Date(Year(Date()), m, 1, 0, 0, 0)
      Month = Month(Date)
      Year = Year(Date)
      DayOfWeek = DayOfWeek(Date)-1
      If DayOfWeek = -1
        DayOfWeek = 6
      EndIf
      Date = AddDate(Date, #PB_Date_Day, -DayOfWeek)
      
      DrawTextY + 20
      For y=1 To 6
        DrawTextX = 0
        For x=1 To 7
          DrawTextX + 30
          DrawText(DrawTextX, DrawTextY, Str(Day(Date)), RGB(0, 0, 0), RGB(255, 255, 255))
          Date = AddDate(Date, #PB_Date_Day, 1)
        Next x
        DrawTextY + 20
      Next y
    Next m
    
    StopDrawing()
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 250, 920, "Kalender", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  CanvasGadget(0, 0, 0, 250, 920, #PB_Canvas_Border)
  
  showCalendarMonth()
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow : EndIf

Re: Kalender auf CanvasGadget Basis

Verfasst: 28.06.2018 22:42
von Kiffi
NicTheQuick hat geschrieben:@Kiffi: Webgadget-Magie geht mal wieder nicht unter Linux ;-)
Kiffi hat geschrieben:achso, ja das vergesse ich immer wieder. Hätte ich zu Hause an meinem Rechner gesessen, wäre mir das früher aufgefallen. :|
Nachtrag: Funktioniert bei mir (ebenso wie bei Thomas) unter Linux (Mint 18.3 Cinnamon 64-bit).

Re: Kalender auf CanvasGadget Basis

Verfasst: 29.06.2018 09:20
von ¯\_(ツ)_/¯
Danke RSBasic für den Code, auch dich liebe ich. :allright: