Kalender auf CanvasGadget Basis

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Kalender auf CanvasGadget Basis

Beitrag 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.
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Kalender auf CanvasGadget Basis

Beitrag 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
Hygge
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Kalender auf CanvasGadget Basis

Beitrag von ts-soft »

WebGadget Magie unter Linux 8)
Bild

Kein Problem hier,

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Kalender auf CanvasGadget Basis

Beitrag von RSBasic »

[ot]
Profil von ts-soft hat geschrieben:Beiträge insgesamt: 22222
Herzlichen Glückwunsch zu deinem 22.222. Beitrag. Schnapszahl :allright:
[/ot]
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Kalender auf CanvasGadget Basis

Beitrag 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:
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Kalender auf CanvasGadget Basis

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Kalender auf CanvasGadget Basis

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Kalender auf CanvasGadget Basis

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Kalender auf CanvasGadget Basis

Beitrag 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).
Hygge
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Kalender auf CanvasGadget Basis

Beitrag von ¯\_(ツ)_/¯ »

Danke RSBasic für den Code, auch dich liebe ich. :allright:
Bild
Antworten