RickyMartin Posted November 11, 2012 Share Posted November 11, 2012 (edited) I just want to make a simple drawing.... Two lines that's it, but I am completely dumbfounded by how GUICtrlCreateGraphic and associated drawing commands (do not) work as I want it to. my very simple redraw function: Func Redraw() If $a Then GUICtrlDelete($a) GUICtrlDelete($b) EndIf Global $a = GUICtrlCreateGraphic(40,40) Global $b = GUICtrlCreateGraphic(40,40) GUICtrlSetGraphic($a, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($a, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter]) GUICtrlSetGraphic($a, $GUI_GR_LINE, 60, 10) GuiCtrlSetState($a,$GUI_DISABLE) GUICtrlSetGraphic($b, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($b, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter+1]) GUICtrlSetGraphic($b, $GUI_GR_LINE, 10, 80) GuiCtrlSetState($b,$GUI_DISABLE) EndFunc When I change an X GUICtrlSetGraphic($b, $GUI_GR_LINE, 10, 80) it changes $a ?!?!?!? When I change an Y GUICtrlSetGraphic($a, $GUI_GR_LINE, 10, 80) it changes $b ?!?!?!? why oh why does it mix up the two controls?!? Also, sometimes it produces a line, sometimes just a dot... very strange Edited November 11, 2012 by RickyMartin Link to comment Share on other sites More sharing options...
RickyMartin Posted November 11, 2012 Author Share Posted November 11, 2012 (edited) I just want to make a simple drawing.... Two lines that's it, but I am completely dumbfounded by how GUICtrlCreateGraphic and associated drawing commands (do not) work as I want it to. my very simple redraw function: Func Redraw() If $a Then GUICtrlDelete($a) GUICtrlDelete($b) EndIf Global $a = GUICtrlCreateGraphic(40,40) Global $b = GUICtrlCreateGraphic(40,40) GUICtrlSetGraphic($a, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($a, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter]) GUICtrlSetGraphic($a, $GUI_GR_LINE, 60, 10) GuiCtrlSetState($a,$GUI_DISABLE) GUICtrlSetGraphic($b, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($b, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter+1]) GUICtrlSetGraphic($b, $GUI_GR_LINE, 10, 80) GuiCtrlSetState($b,$GUI_DISABLE) EndFunc When I change an X GUICtrlSetGraphic($b, $GUI_GR_LINE, 10, 80) it changes $a ?!?!?!? When I change an Y GUICtrlSetGraphic($a, $GUI_GR_LINE, 10, 80) it changes $b ?!?!?!? why oh why does it mix up the two controls?!? Also, sometimes it produces a line, sometimes just a dot... very strange Funny thing: Func Redraw() If $a Then GUICtrlDelete($a) EndIf Global $a = GUICtrlCreateGraphic(40,40) GUICtrlSetGraphic($a, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($a, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter]) GUICtrlSetGraphic($a, $GUI_GR_LINE, 40, 40) GUICtrlSetGraphic($a, $GUI_GR_PENSIZE, $pensize) GUICtrlSetGraphic($a, $GUI_GR_COLOR,$Pencolor[$Pencolorcounter+1]) GUICtrlSetGraphic($a, $GUI_GR_LINE, 0, 40) GuiSetState() EndFunc Produces absolutely nothing?!? Change it to GUICtrlSetState(-1,$GUI_SHOW) And it appears......... The first time..... Next update, nothing Edited November 11, 2012 by RickyMartin Link to comment Share on other sites More sharing options...
guinness Posted November 11, 2012 Share Posted November 11, 2012 Why you using Global inside a function? Global variables should be declared at the top of the script. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
RickyMartin Posted November 11, 2012 Author Share Posted November 11, 2012 Why you using Global inside a function? Global variables should be declared at the top of the script.does it matter? Link to comment Share on other sites More sharing options...
Developers Jos Posted November 11, 2012 Developers Share Posted November 11, 2012 Show a script that reproduces your issue. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
guinness Posted November 11, 2012 Share Posted November 11, 2012 does it matter?Yes, it can cause 'variable not declared' problems, it's also bad coding practice to do so.As Jos said, produce some workable code, as right now we (those who help) have to code quite a bit to try and reproduce the problem. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
RickyMartin Posted November 11, 2012 Author Share Posted November 11, 2012 (edited) I think I solved it.... The Help file on GUICtrlCreateGraphic and the associated GUICtrlSetGraphic is very short and could use some elaboration IHMO. I did not get that no matter what, GUICtrlSetGraphic used the last cursor position for the next draw, even though it was two different controls. Anyway, I have a new one for you guys: Can I have a GUI that does not "take" focus no matter what? Like a transparent GUI that you cannot click on? I am guessing I have to somehow catch Windows Message Codes maybe? Using GUIRegisterMsg? Or? I am using the very nice Transparent Clock that someone in here did, to make me some Windows widgets (clocks etc.) but it's really hard using low level calls. Edited November 11, 2012 by RickyMartin 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