Dategadget Kalender gößer darstellen

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

Hi RsBasic,

Code eingebaut und die Procedure nach dem ersten DateGadget aufgerufen

und siehe da alle DateGadget habe den Großen Kalender.

Mannnnnnnnnnnn :bounce: du kannst Dir nicht vorstellen wie happy ich jetzt bin.

Wirklich von ganzem Herzen besten Dank.

Meine Frau und Ihre Mitarbeiter werden begeistert sein.

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

Hi RSBasic,

was mache ich unter Linux :D :D :D :D

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Dategadget Kalender gößer darstellen

Beitrag von RSBasic »

gnaps hat geschrieben:ich weis ich nerve, aber ich brauche das unbedingt.
Nein, du nervst nicht. Das Forum ist leider eh viel zu still.

Freut mich, dass es bei dir funktioniert und dass ich dir helfen konnte.
gnaps hat geschrieben:was mache ich unter Linux :D :D :D :D
Dafür bin ich nicht zuständig und ich kenne mich mit Linux nicht aus. Da musst du auf andere User warten.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

HI RsBasic,

muss nochmals durchkommen, habe mich zu früh gefreut,
das ausgewählte datum wird in das DateGdagte eingetragen, jedoch
kommt das Datum mit GetGadgetstate() nicht in meiner Variable an.

Lasse ich den Aufruf SetWindowCallback(@WindowCallback()) weg (kleiner Kalender)
kommt das Datum in meiner Variable an.

Was ist das nun ?

Ich Hoffe Du kannst mir nochmal helfen.

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Dategadget Kalender gößer darstellen

Beitrag von RSBasic »

Bist du dir sicher, dass du dein DateGadget in deiner Event-Schleife richtig abfragst?

Hier ein Beispielcode:

Code: Alles auswählen

EnableExplicit

Define YourDateVariable

LoadFont(1, "Segoe UI", 15)

Procedure WindowCallback(hWnd, uMsg, wParam, lParam)
  Protected *NMDATETIMECHANGE.NMDATETIMECHANGE
  Protected Handle_DropDown
  Protected Handle_SysMonthCal32
  Protected ClassName$ = Space(1024)
  
  Select uMsg
    Case #WM_NOTIFY
      *NMDATETIMECHANGE = lParam
      
      If *NMDATETIMECHANGE\nmhdr\hwndfrom
        GetClassName_(*NMDATETIMECHANGE\nmhdr\hwndfrom, @ClassName$, Len(ClassName$))
        If ClassName$ = "SysDateTimePick32"
          If *NMDATETIMECHANGE\nmhdr\code = #DTN_DROPDOWN
            Handle_DropDown = FindWindow_("DropDown", 0)
            Handle_SysMonthCal32 = FindWindowEx_(Handle_DropDown, #Null, "SysMonthCal32", #Null)
            If Handle_SysMonthCal32
              SetWindowTheme_(Handle_SysMonthCal32, @"", @"")
              SendMessage_(Handle_SysMonthCal32, #WM_SETFONT, FontID(1), 0)
              SetWindowPos_(Handle_DropDown, 0, 0, 0, 250, 300, #SWP_SHOWWINDOW | #SWP_NOZORDER | #SWP_NOMOVE | #SWP_FRAMECHANGED)
            EndIf
          EndIf
        EndIf
      EndIf
      
  EndSelect
  
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  DateGadget(0, 10, 10, 300, 20, "%dd.%mm.%yyyy", Date())
  
  SetWindowCallback(@WindowCallback())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 0
            Select EventType()
              Case #PB_EventType_Change
                YourDateVariable = GetGadgetState(0)
                Debug YourDateVariable
                Debug FormatDate("%dd.%mm.%yyyy", YourDateVariable)
            EndSelect
        EndSelect
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

Hi RSBasic

hatte einen Fehler im Code, passt schon.

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

Hi RSBasic,

kannst Du mir noch sagen wie ich den Datumswert im DateGadget zentriert darstellen kann.

#PB_Text_Center gibts beim DateGadget ja nicht.

Du hast sicherlich eine Lösung.

Danke schon mal.

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Dategadget Kalender gößer darstellen

Beitrag von RSBasic »

Ich habe auf MSDN leider nichts gefunden. Aber vielleicht reicht dir ein Workaround aus?

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  DateGadget(0, 10, 10, 300, 20, "                                     %dd.%mm.%yyyy", Date())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
Ansonsten ist mir keine andere Lösung bekannt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Dategadget Kalender gößer darstellen

Beitrag von gnaps »

Hi RSBasic,

diese Variante hatte ich auch schon, jedoch beim Parsen Probleme,
Nunja muss ich halt 176 "%dd.%mm.%yyyy" in " %dd.%mm.%yyyy" ändern.

Leider geht das mit suchen und ersetzen nicht so einfach da manche "%dd.%mm.%yyyy" auch so bleiben müssen.

Dennoch danke.

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Dategadget Kalender gößer darstellen

Beitrag von Bisonte »

wenn das so weiter geht ... dann solltest du ein CanvasGadget dafür nehmen....
Dann kannst/musst du ALLES so zeichnen wie du es dir vorstellst. ;)
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Antworten