DateGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

DateGadget

Beitrag von Thomas »

Gibt es ne Möglichkeit ein DateGadget so zu manipulieren, dass man nur Datums ohne Jahr auswählen kann?
v6.00
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Ich weiß nun nicht ob ich das hier richtig verstanden habe,
was du haben willst. Aber die Maske lässt sich schon ändern
und zeigt dann das aktuelle Datum an. Das Jahr ist dann, wenn man es
zum Bsp auf 2047 ändert ein lustiges Ergebnis.

Ich bekomme dann zwar unten das Jahr korrekt angezeigt mit meinem
jetzigen Datum. Aber im Kopf steht dann komischerweise 1947 :lol:
Liegt wohl am Jahr 2000-Problem nun an Vista :lol:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 200, 250, "DateGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateGadgetList(WindowID(0))
      DateGadget(0, 10, 10, 60, 25, "%dd.%mm")
      Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow
    EndIf
EndIf
Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Ich meinte das so:
Es soll auch das 2007 aus dem DropDown selbst verschwinden nicht nur aus dem Kopf.
v6.00
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Hier habe ich was passendes gefunden und etwas damit herumgespielt.

http://www.purebasic.fr/english/viewtop ... 9418#69418

Code: Alles auswählen

#MCM_GETCURSEL = $1001

Global hcal
Global hwnd, hwnd1

Declare datepick()

Structure InitCommon
  dwSize.l
  dwICC.l
EndStructure

Global my.InitCommon
my\dwSize = 8
my\dwICC = $100

InitCommonControlsEx_(@my)

hwnd=OpenWindow(0,300,400,300,100.0,"Calender THIS!",#PB_Window_SystemMenu)
If hwnd=0 Or CreateGadgetList(hwnd)=0:End:EndIf
;ActivateWindow()
ButtonGadget(1,30,10,50,20,"Date Me!")
ButtonGadget(2,30,50,50,20,"EXIT!")

Repeat
  EventID.l = WaitWindowEvent()
 
  If EventID = #PB_Event_Gadget
    Select EventGadget()
      Case 1
         datepick()
      Case 2
        End
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow

Procedure Datepick()

  hwnd1=OpenWindow(1,600,400,350,400.0,"API-Kalender",#PB_Window_SystemMenu)
  If hwnd1=0 Or CreateGadgetList(hwnd1)=0:End:EndIf
  ;ActivateWindow()

  hCal=CreateWindowEx_(0,"SysMonthCal32","Calender",#WS_CHILD|#WS_VISIBLE,10,80,300,300,hwnd1,0,GetModuleHandle_(0),0)
  ;ein wenig Farbe ins Spiel bringen
  SendMessage_(hCal,4106,0,$800000);MCM_SC_BACKGROUND
  SendMessage_(hCal,4106,4,$800000);MCM_SC_MONTHBACK
  SendMessage_(hCal,4106,2,$800000);MCM_SC_TITLE
  SendMessage_(hCal,4106,1,$00FFFF);MCM_SC_TEXT
  SendMessage_(hCal,4106,3,$800000);MCM_SC_TITLETEXT

  ButtonGadget(3,10,10,50,20,"OK")

  Repeat
    EventID.l = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 3
          SendMessage_(hCal,#MCM_GETCURSEL,0,@time.SYSTEMTIME )
          year=time\wYear
          month=time\wMonth
          day=time\wDay
          info.s = Str(day)+"."+Str(month);+"."+Str(year)
          MessageRequester("",info,0)
          t = DestroyWindow_(hcal)
          If t<> 0
            CloseWindow_(hwnd1)
          EndIf
          Break
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
EndProcedure 
Gruß ..Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Danke, interessanter Code :mrgreen:
v6.00
Antworten