Fensterinhalt wird nur bei Mausbewegung aktualisiert
Verfasst: 29.11.2009 15:52
Hallo 
Ich bin grade dabei ein neues, kleines Prog zu schreiben, das Infos über den RAM ausgibt. Dabei werden alle Angaben nach genau einer Sekunde aktualisiert.
Das Problem: Es wird nur aktualisiert, wenn die Maus im Fenster ist, und man sie bewegt. Zusätzlich (ein Problem kommt ja selten allein) wird das dann nicht jede Sekunde aktualisiert, sondern immer wenn man die Maus bewegt also auch z. B. nach 2 Sekunden oder nach 0,2 Sekunden.
Hier der vollständige Source: (soll ja nachher sowieso OpenSource werden)
Der Beenden-Button funzt noch nicht, das Programm muss also über den Totenkopf in PB gekillt werden.
Grüße, Mok

Ich bin grade dabei ein neues, kleines Prog zu schreiben, das Infos über den RAM ausgibt. Dabei werden alle Angaben nach genau einer Sekunde aktualisiert.
Das Problem: Es wird nur aktualisiert, wenn die Maus im Fenster ist, und man sie bewegt. Zusätzlich (ein Problem kommt ja selten allein) wird das dann nicht jede Sekunde aktualisiert, sondern immer wenn man die Maus bewegt also auch z. B. nach 2 Sekunden oder nach 0,2 Sekunden.
Hier der vollständige Source: (soll ja nachher sowieso OpenSource werden)
Code: Alles auswählen
Global MemoryAll.l
Global MemoryUse.l
Global MemoryPercUse.l
Global MemoryFree.l
Procedure RefreshMem()
memex.MEMORYSTATUSEX
memex\dwLength = SizeOf(MEMORYSTATUSEX)
GlobalMemoryStatusEx_(@memex)
MemoryAll = memex\ullTotalPhys/1024/1024
MemoryUse = (memex\ullTotalPhys-memex\ullAvailPhys)/1024/1024
MemoryPercUse = memex\dwMemoryLoad
MemoryFree = memex\ullAvailPhys/1024/1024
EndProcedure
Enumeration
#MainWindow
EndEnumeration
Enumeration
#TextGadget_1
#TextGadget_2
#TextGadget_3
#TextGadget_4
#TextGadget_1a
#TextGadget_2a
#TextGadget_3a
#TextGadget_4a
#TextGadget_5
#ButtonGadget_1
#ButtonGadget_2
EndEnumeration
ExamineDesktops()
Global Width = DesktopWidth(0)
Global Height = DesktopHeight(0)
ElapsedTime = ElapsedMilliseconds()
RefreshMem()
OpenWindow(#MainWindow,Width-205,Height-204,199-5,149-5,"RAM.inf",#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
GadY = 10
TextGadget(#TextGadget_1,5,GadY,85,20,"RAM gesamt:",#PB_Text_Right)
TextGadget(#TextGadget_1a,95,GadY,85,20,Str(MemoryAll)+" MB")
GadY+20
TextGadget(#TextGadget_2,5,GadY,85,20,"RAM-Verbrauch:",#PB_Text_Right)
TextGadget(#TextGadget_2a,95,GadY,85,20,Str(MemoryUse)+" MB")
GadY+20
TextGadget(#TextGadget_3,5,GadY,85,20,"% Verbrauch:",#PB_Text_Right)
TextGadget(#TextGadget_3a,95,GadY,85,20,Str(MemoryPercUse)+" %")
GadY+20
TextGadget(#TextGadget_4,5,GadY,85,20,"RAM frei:",#PB_Text_Right)
TextGadget(#TextGadget_4a,95,GadY,85,20,Str(MemoryFree)+" MB")
GadY+20
ButtonGadget(#ButtonGadget_1,5,GadY,70,30,"Optionen")
ButtonGadget(#ButtonGadget_2,GadY+30,GadY,70,30,"Beenden")
GadY+35
TextGadget(#TextGadget_5,5,GadY,Height-204,20,"F1 für Hilfe by LoRD Soft (Mok)")
Repeat
If ElapsedTime > 1000
RefreshMem()
SetGadgetText(#TextGadget_1a,Str(MemoryAll)+" MB")
SetGadgetText(#TextGadget_2a,Str(MemoryUse)+" MB")
SetGadgetText(#TextGadget_3a,Str(MemoryPercUse)+" %")
SetGadgetText(#TextGadget_4a,Str(MemoryFree)+" MB")
ElapsedTime = ElapsedMilliseconds()
EndIf
Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße, Mok