Systemzeit und Systemdatum abfragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Systemzeit und Systemdatum abfragen

Beitrag von Helmut »

Es gibt:
SysDateTimePick32

gibt es auch was für die Zeitdarstellung, wenn ja mit Beispiel ?
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Was meinst Du genau?
Kennst Du PB's Date()-Funktion ?
!UD2
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

Den Code für den Kalender:
gibt es das Gleiche für die Zeit?

Code: Alles auswählen

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2997&highlight= 
; Author: Andreas 
; Date: 03. December 2003 

#MCM_GETCURSEL = $1001 
#Auswahl=1 
#Abbruch = 2 

Structure InitCommon 
  dwSize.l 
  dwICC.l 
EndStructure 

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

InitCommonControlsEx_(@my) 

hwnd=OpenWindow(0,0,0,800,700.0,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"API-Kalender") 
If hwnd=0 Or CreateGadgetList(hwnd)=0:End:EndIf 

hCal=CreateWindowEx_(0,"SysMonthCal32","Kalender",#WS_CHILD|#WS_VISIBLE,10,80,600,700,hwnd,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,$0000FF);MCM_SC_TITEL 
SendMessage_(hCal,4106,1,$00FFFF);MCM_SC_TEXT 
SendMessage_(hCal,4106,3,$00FFFF);MCM_SC_TITELTEXT 

ButtonGadget(#Auswahl,10,10,50,20,"Datum") 
ButtonGadget(#Abbruch,10,40,50,20,"Abbruch") 


Repeat 
  EventID.l = WaitWindowEvent() 
  
  If EventID = #PB_EventGadget 
    Select EventGadgetID() 
      Case #Auswahl 
        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) 
      Case #Abbruch 
        End 
    EndSelect 
  EndIf 
Until EventID = #PB_EventCloseWindow 

End 
; ExecutableFormat=Windows 
; EnableXP 
; EOF 
oder:

Code: Alles auswählen

OpenWindow(0,200,200,200,200,#PB_Window_SystemMenu,"test") 
If CreateGadgetList(WindowID()) 
  ;mit checkbox 
  picker1=CreateWindowEx_(0,"SysDateTimePick32","",#WS_CHILD|#WS_VISIBLE|12+2,10,10,100,25,WindowID(),0,GetModuleHandle_(0),0) 
  SendMessage_(picker1,4097,0,@s.SYSTEMTIME) 
  s\wYear = 2000 
  s\wMonth = 12 
  s\wDay = 11 
  ;SendMessage_(picker1,4098,0,s) 
  ;SendMessage_(picker1,4098,1,s) 
  ;ohne checkbox 
  picker2=CreateWindowEx_(0,"SysDateTimePick32","",#WS_CHILD|#WS_VISIBLE|12,10,40,100,25,WindowID(),0,GetModuleHandle_(0),0) 

  
  EndIf 
;Debug msg 
Repeat 
  EventID=WaitWindowEvent() 
  
  Until EventID=#PB_EventCloseWindow 

  CloseWindow(0) 
   
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Hmmm. Sieht nicht so aus, als ob es da was gäbe:
http://msdn.microsoft.com/library/defau ... ssages.asp
Hier ist immer nur die Rede vom "date and time picker (DTP) control's child month calendar control"
Mit DTP ist das Textfeld gemeint. Das 'child month calender control' ist das extra-popup-Fenster. Nirgendwo aber ist die Rede von einem 'child time calender control'

Aber mit #DTM_SETFORMAT und #DTS_TIMEFORMAT lässt sich ein Zeitpicker bauen, wie er auch bei der Windows-Uhrzeiteinstellung funktioniert:
Cool ist, wenn man den Tag oder Monat verändert, verändert sich der Name gleich mit:

Code: Alles auswählen

OpenWindow(0,200,200,455,80,#PB_Window_SystemMenu,"test")
If CreateGadgetList(WindowID())
  ;mit checkbox
  #DTS_TIMEFORMAT = $0009
  #DTM_SETFORMAT  = $1005
  format.s = "'Uhrzeit ist ' HH:mm:ss ' am 'dddd'den 'dd.MM.yyyy '('MMMM')'"
  
  picker=CreateWindowEx_(0,"SysDateTimePick32","",#DTS_TIMEFORMAT|#WS_CHILD|#WS_VISIBLE|12,10,10,440,25,WindowID(),0,GetModuleHandle_(0),0)
  SendMessage_(picker, #DTM_SETFORMAT, 0, @format);
  TextGadget(0, 10, 50, 440, 25, "Die einzelnen Daten lassen sich anklicken und editieren.") 
  EndIf
;Debug msg
Repeat
  EventID=WaitWindowEvent()
 
  Until EventID=#PB_EventCloseWindow

  CloseWindow(0) 
Für den Formatstring siehe hier:
http://msdn.microsoft.com/library/defau ... format.asp
!UD2
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ich weiß zwar nich obs dass gibt, aber wie stellst du dir das vor? Ich meine für jede Minute einen Eintrag oder was?

KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

Das Programm von Froggerprogger ist schon nicht schlecht, wenn ich die veränderten Daten weiter verarbeiten kann, dann ist es OK.
Soll so 'ne Art Schaltuhr werden!
Antworten