SoulBlade Posted March 2, 2008 Posted March 2, 2008 (edited) Hi! I'm trying to display the amount of free RAM im my GUI using Adlibenable, with a 3 seconds update. The problem is that i use several TABs and the value must be shown only in first TAB. If i click the second TAB, the value still appears. :| Here's my code: CODE#include <GUIConstants.au3> $Gui=GUICreate("GUI",514, 325) $tab=GUICtrlCreateTab (0,0, 518,310) $tab0=GUICtrlCreateTabitem ("Diagnostic") $mem = MemGetStats() $memT=round($mem[1]/1024+1,0) $memF=round($mem[2]/1024+1,0) $memP=round($memF/$memT,2)*100 GUICtrlCreateLabel("Total:", 360, 107, 30, 14,$SS_LEFT) GUICtrlSetColor(-1,0x0000FF) GUICtrlCreateLabel("Free:", 360, 126, 30, 14,$SS_LEFT) GUICtrlSetColor(-1,0x0000FF) GUICtrlCreateLabel($memT & " MB", 390, 107, 50, 14,$SS_LEFT) GUICtrlCreateLabel($memF & " MB " & "(" & $memP & "%)", 390, 126, 90, 14,$SS_LEFT) Adlibenable ("MEM",3000) $tab1=GUICtrlCreateTabitem ("Test") GUISetState () Do $msg = GUIGetMsg() Select Case $msg= $GUI_EVENT_CLOSE Exit EndSelect Until $msg = $GUI_EVENT_CLOSE Func MEM() $mem = MemGetStats() $memT=round($mem[1]/1024+1,0) $memF=round($mem[2]/1024+1,0) $memP=round($memF/$memT,2)*100 GUICtrlCreateLabel($memF & " MB " & "(" & $memP & "%)", 390, 126, 90, 14,$SS_LEFT) EndFunc Thanks for your help! Edited March 2, 2008 by SoulBlade
monoceres Posted March 2, 2008 Posted March 2, 2008 (edited) Use GUICtrlSetData() Instead of GUICtrlCreateLabel() in your update function. Otherwise you will just create a new label in the last used tab. Here is a working version of your code with a bit of clean up. expandcollapse popup#include <GUIConstants.au3> $Gui=GUICreate("GUI",514, 325) $tab=GUICtrlCreateTab (0,0, 518,310) $tab0=GUICtrlCreateTabitem ("Diagnostic") $mem = MemGetStats() $memT=round($mem[1]/1024+1,0) $memF=round($mem[2]/1024+1,0) $memP=round($memF/$memT,2)*100 GUICtrlCreateLabel("Total:", 360, 107, 30, 14,$SS_LEFT) GUICtrlSetColor(-1,0x0000FF) GUICtrlCreateLabel("Free:", 360, 126, 30, 14,$SS_LEFT) GUICtrlSetColor(-1,0x0000FF) GUICtrlCreateLabel($memT & " MB", 390, 107, 50, 14,$SS_LEFT) $id = GUICtrlCreateLabel($memF & " MB " & "(" & $memP & "%)", 390, 126, 90, 14,$SS_LEFT) Adlibenable ("MEM",3000) $tab1=GUICtrlCreateTabitem ("Test") GUISetState () Do $msg = GUIGetMsg() Until $msg = $GUI_EVENT_CLOSE Func MEM() $mem = MemGetStats() $memT=round($mem[1]/1024+1,0) $memF=round($mem[2]/1024+1,0) $memP=round($memF/$memT,2)*100 GUICtrlSetData($id,$memF & " MB " & "(" & $memP & "%)") EndFunc Edited March 2, 2008 by monoceres Broken link? PM me and I'll send you the file!
SoulBlade Posted March 2, 2008 Author Posted March 2, 2008 Use GUICtrlSetData() Instead of GUICtrlCreateLabel() in your update function. Otherwise you will just create a new label in the last used tab.Here is a working version of your code with a bit of clean up.You're right!It's much cleaner and efective now!I need to fully clean my code now...Thank you very much for your help!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now