Tankbuster Posted January 15, 2013 Share Posted January 15, 2013 (edited) Could someone please explain where my thoughts went wrong? GUICtrlSetTip($arrTemp[$i][0],$arrTemp[$i][1]) I searched the forum and I found of course some posts, but I didn't found the right idea/hint. I fear it's a face palm for me..... I stripped down everything to this: #include <Debug.au3> #include <array.au3> _DebugSetup(@ScriptName,False,2) #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 351, 270, 192, 124) $Button1 = GUICtrlCreateButton("Button1", 64, 32, 217, 65) $Button2 = GUICtrlCreateButton("Button2", 64, 112, 217, 65) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### local $MessageBundletextfile="MSGBUNDLE.INI" local $arrTemp $arrTemp=IniReadSection($MessageBundletextfile,"CONTROLTIP") _ArrayDisplay($arrTemp) for $i = 1 to $arrTemp[0][0] _debugout($arrTemp[$i][0]&":"&$arrTemp[$i][1]) GUICtrlSetTip($arrTemp[$i][0],$arrTemp[$i][1]) Next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd File Conent of $MessageBundletextfile="MSGBUNDLE.INI" [CONTROLTIP] $hGui = "Hello" $Button1 = "Tip on Button1" $Button2 = "Tip on Button2" Edited January 24, 2013 by Tankbuster Link to comment Share on other sites More sharing options...
PlayHD Posted January 15, 2013 Share Posted January 15, 2013 (edited) Something like this? expandcollapse popup#include <GUIConstantsEx.au3> #Include <Array.au3> GUICreate("PlayHD Example", 466, 190) Local $bArray[1], $bTip[1] For $i = 0 To 5 For $j = 0 To 5 _ArrayAdd($bArray,GUICtrlCreateButton("Button "&$i&" - "&$j, $i*75+8, $j*25+8, 75, 25)) _ArrayAdd($bTip,_GuiCtrlSetTip_($bArray[UBound($bArray)-1],"Tip Button "&$i&" - "&$j)) $bArray[0] += 1 $bTip[0] = $bArray[0] Next Next $Label = GUICtrlCreateLabel("",8,165,460,17) GUICtrlSetFont($Label,9,400,0,"Consolas") GUISetState() Local $Timer, $Debug = 1 While 1 $gMsg = GUIGetMsg() Switch $gMsg Case $GUI_EVENT_CLOSE Exit GUIDelete() Case $bArray[1] To $bArray[UBound($bArray)-1] If $Debug Then $Timer = TimerInit() For $i = 1 To UBound($bArray)-1 If $gMsg = $bArray[$i] Then GUICtrlSetData($Label,"CtrlID : "&$bArray[$i]&"|CtrlText : "&GUICtrlRead($bArray[$i])&"|Tip : "&$bTip[$i]) ExitLoop EndIf Next If $Debug Then ConsoleWrite("Time to Find Control : "&TimerDiff($Timer)&" ms."&@LF) EndSwitch WEnd Func _GuiCtrlSetTip_($controlID, $tiptext , $title = "", $icon = 0, $options = 1) GUICtrlSetTip($controlID, $tiptext , $title , $icon , $options) Return $tiptext EndFunc It works fine until 300 Buttons with more you need more time to wait. 300 button < 500 ms (~450 ms) Or i dont understand your problem? (Sorry i'm not a good 'english-er') Edited January 15, 2013 by PlayHD My UDF : _WinShake, _WinSplitMy Apps : Google Guitar Bot, PuzzleGameDesign Gui : Interesting Tabs Design, RBox Project (abandoned), Animated Gui on Exit Link to comment Share on other sites More sharing options...
dabus Posted January 18, 2013 Share Posted January 18, 2013 (edited) Use Eval and strip the $ from the key of your ini-section. Eval=Return the value of the variable defined by an string. GUICtrlSetTip(Eval($arrTemp[$i][0]),$arrTemp[$i][1]) And your script does not work since $Button1 is a variable and not a fixed string. Since you read out ini-sections as a sting, autoit cannot handle this. With eval, you translate that sting into the current value of the variable, which is the ControlID that is returned by GuiCtrlCreateXYZ here. Edited January 18, 2013 by dabus Link to comment Share on other sites More sharing options...
Tankbuster Posted January 24, 2013 Author Share Posted January 24, 2013 dabus, thank you, you solved it for me. I was playing with eval before, but I missed my leading "$" in the INI file. As always, reading the manual would have solved before asking. I just added here the corrected code. (and I fixed the OP because some includes are missing from copy and paste function) #include <Debug.au3> #include <array.au3> _DebugSetup(@ScriptName,False,2) #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 351, 270, 192, 124) $Button1 = GUICtrlCreateButton("Button1", 64, 32, 217, 65) $Button2 = GUICtrlCreateButton("Button2", 64, 112, 217, 65) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### local $MessageBundletextfile="MSGBUNDLE.INI" local $arrTemp $arrTemp=IniReadSection($MessageBundletextfile,"CONTROLTIP") _ArrayDisplay($arrTemp) for $i = 1 to $arrTemp[0][0] _debugout($arrTemp[$i][0]&":"&$arrTemp[$i][1]) ;~ dabus fix ---------- START GUICtrlSetTip(Eval($arrTemp[$i][0]),$arrTemp[$i][1]) ;~ dabus fix ---------- END Next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Link to comment Share on other sites More sharing options...
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