Seite 1 von 1

Zeitanzeige und Tastaturzähler

Verfasst: 01.08.2007 19:00
von HemSA
Hallole, es ist nicht viel,
aber vielleicht kanns jemand gebrauchen.
Im Fenster wird die Startzeit, die jetzige Zeit, die Zeitdifferenz angezeigt. Wenn man die ESC - Taste drückt werden die Anzahl der Tastenbetätigung angezeigt.

Nichts weltbewegendes, aber vielleicht eine Hilfe, der so was ähnliches machen will ( habe auf diese Art jedenfalls gelernt, wie man die Tastaturbetätigung abfragen kann ).

Ach ja, noch eine Bemerkung. Die Anzeige der Zeitdifferenz hinkt manchmal um 1 Sekunde hinterher, warum weiss ich nicht.

Code: Alles auswählen


Enumeration ; Windows 
  #Hauptfenster
EndEnumeration 


Enumeration ; Gadgets 
  
   ; Hauptfenster 
  #Hauptfenster_txt_startzeit
  #Hauptfenster_txt_startzeitwert
  #Hauptfenster_txt_jetztzeit
  #Hauptfenster_txt_jetztzeitwert
  #Hauptfenster_txt_zeitdifferenz
  #Hauptfenster_txt_zeitdifferenzwert
  #Hauptfenster_txt_automatikzaehler
  #Hauptfenster_txt_automatikzaehlerwert
  #Hauptfenster_txt_tastaturzaehler1
  #Hauptfenster_txt_tastaturzaehler2
  #Hauptfenster_txt_tastaturzaehlerwert
  
EndEnumeration 
   
  
  Global zeitl.l
  
   
  Procedure Open_Hauptfenster()
  
  If OpenWindow(#Hauptfenster, 500, 500, 300, 150, "Zaehlfenster", #PB_Window_SystemMenu |#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
  EndIf 
  
  
  If CreateGadgetList(WindowID(#Hauptfenster))
    TextGadget(#Hauptfenster_txt_startzeit, 10,  10, 50, 20, "Startzeit")
    TextGadget(#Hauptfenster_txt_startzeitwert, 150,  10, 350, 20, "444")
    TextGadget(#Hauptfenster_txt_jetztzeit, 10,  30, 50, 20, "Jetztzeit")
    TextGadget(#Hauptfenster_txt_jetztzeitwert, 150,  30, 300, 20, "")
    TextGadget(#Hauptfenster_txt_zeitdifferenz, 10,  50, 250, 20, "Zeitdifferenz")
    TextGadget(#Hauptfenster_txt_zeitdifferenzwert, 150,  50, 300, 20, "")
    TextGadget(#Hauptfenster_txt_automatikzaehler, 10, 70, 200, 20, "Alle 5 sek um 1 erhöhen")
    TextGadget(#Hauptfenster_txt_automatikzaehlerwert, 150, 70, 300, 20, "")
    TextGadget(#Hauptfenster_txt_tastaturzaehler1, 10, 90, 90, 20, "Tastaturzaehler")
    TextGadget(#Hauptfenster_txt_tastaturzaehler2, 10, 110, 100, 20, "(Esc Taste drücken)")
    TextGadget(#Hauptfenster_txt_tastaturzaehlerwert, 150, 90, 100, 20, "")
    
  EndIf
  
   
  EndProcedure
  
  
  
Procedure hauptprogramm()
  
  Static zeitl.l
    
  Protected quit.l 
  Protected EventID.l 
  Protected EventGadget.l 
  Protected EventWindow.l 
  
  
  Open_Hauptfenster()
 
  
  zeitl.l = ElapsedMilliseconds() 
  startzeitl.l= ElapsedMilliseconds()/1000 
  startzeits.s=FormatDate("%dd:%mm:%yyyy    %hh:%ii:%ss",Date())
  automatikmengel.l=0
  zaehlerl.l=1
  ausgleichl.l=-2
  tastaturmengel.l=0
  
  
  AddKeyboardShortcut(#Hauptfenster, #PB_Shortcut_Escape, 9999)
  
  Repeat 
    
    EventID     = WaitWindowEvent(100) 
    EventGadget = EventGadget() 
    EventWindow = EventWindow() 
    MenuID      = EventMenu() 
    
    Select EventID 
      Case #PB_Event_CloseWindow 
        
        Select EventWindow 
          Case #Hauptfenster :  quit =1      
        EndSelect    
        
      Case #PB_Event_Menu 
        Select MenuID 
          Case 9999 
 
          tastaturmengel.l=tastaturmengel.l+1
          tastaturmenges.s=Str(tastaturmengel.l)
   
        EndSelect
        
    EndSelect
    

          
    If ElapsedMilliseconds() > zeitl.l 
       zeitl.l = zeitl.l + 1000 
       jetztzeits.s=FormatDate("%dd:%mm:%yyyy    %hh:%ii:%ss",Date()) 
       jetztzeitl.l=ElapsedMilliseconds()/1000
      
         
    
      zeitdifferenzl.l=(jetztzeitl.l-startzeitl.l)
      zeitdifferenzs.s=Str(zeitdifferenzl.l)
      
      automatikzeits.s="5"
      
      automatikzeitl.l=Val(automatikzeits.s)
        
      
      If zeitdifferenzl.l-automatikzeitl.l*zaehlerl.l=0
         ausgleichl.l=0
         automatikmengel.l=automatikmengel.l+1+ausgleichl.l
         zaehlerl.l=zaehlerl.l+1
         automatikmenges.s=Str(automatikmengel.l)
      EndIf
      
      
      Debug tastaturmenges.s +"   "  +  automatikmenges.s; wenn angeschaltet, dann ist die Zeitdifferenz manchmal um 1 sekunde falsch
      
      
        SetGadgetText(#Hauptfenster_txt_startzeitwert,startzeits.s)
        SetGadgetText(#Hauptfenster_txt_jetztzeitwert,jetztzeits.s)
        SetGadgetText(#Hauptfenster_txt_zeitdifferenzwert,zeitdifferenzs.s)
        SetGadgetText(#Hauptfenster_txt_automatikzaehlerwert,automatikmenges.s)
        SetGadgetText(#Hauptfenster_txt_tastaturzaehlerwert,tastaturmenges.s)
    
     
      
    EndIf
    
        
            
  Until quit=1 
  
EndProcedure 

hauptprogramm()
End 


Re: Zeitanzeige und Tastaturzähler

Verfasst: 01.08.2007 20:00
von bobobo
HemSA hat geschrieben:..
Ach ja, noch eine Bemerkung. Die Anzeige der Zeitdifferenz hinkt manchmal um 1 Sekunde hinterher, warum weiss ich nicht.
..
ich erahne eine recht verknurpelte zeitauflösungsroutine mit sowas
wie 'irgendwas+1000' und das zu einem falschen zeitpunkt irgendwo
im code.

Verfasst: 03.08.2007 23:12
von Yoshi

Code: Alles auswählen

zeitl.l = zeitl.l + 1000
Kanns daran liegen?

Re: Zeitanzeige und Tastaturzähler

Verfasst: 04.08.2007 04:37
von Kaeru Gaman
@Yoshi
Yoshi hat geschrieben:

Code: Alles auswählen

zeitl.l = zeitl.l + 1000
Kanns daran liegen?
bobobo hat geschrieben:ich erahne eine recht verknurpelte zeitauflösungsroutine mit sowas
wie 'irgendwas+1000' und das zu einem falschen zeitpunkt irgendwo
im code.
bitte tu nicht so, als würdest du es durchblicken.

zeitl = zeitl + 1000 ist eine wesentlich bessere vorgehensweise als
zeitl = ElapsedMilliseconds() + 1000

das problem liegt in der
recht verknurpelte zeitauflösungsroutine
ok?

und btw:
deine banner sind zu aufdringlich.
eines reicht, und animiert muss es auch nicht sein.

Verfasst: 04.08.2007 20:39
von Yoshi
Gut jetzt ists nur noch eins.