找回密码
 加入
搜索
查看: 4011|回复: 7

[GUI管理] 我删掉重新建立的控件怎么不见了[已解决]

  [复制链接]
发表于 2011-12-18 21:32:19 | 显示全部楼层 |阅读模式
本帖最后由 eaglelin 于 2011-12-19 13:46 编辑

Func LnkDiy($mainwin)
        Local $msg,$var
        Global $DIY[40]
        Global $Button1 = ""
        Global $Button2 = ""
        Global $mains = ""
        Global $AppDir = @AppDataDir & "\NtvTools"
        $mains = GUICreate("用户应用管理", 642, 430, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
       
........       
        $exitbutton = GUICtrlCreateButton("退出面板", 540, 380, 70, 30)
        $helpbutton = GUICtrlCreateButton("查看帮助", 540, 340, 70, 30)
                For $i = 0 To 39 Step 1
                $button_name = IniRead("NTVtools.ini", "UserDIY", "Button" & $i, "")
                If $button_name = "" Then
                        ContinueLoop
                EndIf
                $tip_line = IniRead("NTVtools.ini", "UserDIY", "Tip" & $i, "")
                $Button_x = 20 + Mod($i - 1, 4) * 155
                $Button_y = 20 + Int(($i - 1) / 4) * 30
                                GUICTRLDelete($DIY[$i])
                $DIY[$i] = CreateCursorLabel($button_name, $Button_x, $Button_y, 140, 20, 10, 400, 4, "ALL", "")
        Next
        GUISetState()
        While 1
                $msg = GUIGetMsg()
                Select
                                               Case $msg = $addbutton
                                For $i = 0 To 39 Step 1
                                        If (IniRead(@ScriptDir & "\NTVtools.ini", "UserDIY", "Button" & $i, "")) = "" Then
                                                ExitLoop
                                        EndIf
                                Next
                                If (GUICtrlRead($button_n) <> "") Then
                                        $i = GUICtrlRead($button_n)
                                EndIf
                                IniWrite(@ScriptDir & "\NTVtools.ini", "UserDIY", "Button" & $i, GUICtrlRead($button_name))
                                IniWrite(@ScriptDir & "\NTVtools.ini", "UserDIY", "Commander" & $i, GUICtrlRead($command_file))
                                IniWrite(@ScriptDir & "\NTVtools.ini", "UserDIY", "Tip" & $i, GUICtrlRead($tip_line))
                                MsgBox(64, "提示", "按钮 '" & GUICtrlRead($button_name) & "' 已经添加!重启本工具生效")
                                list()       
                                                Case       $msg = $DIY[0]
                                $command_line = IniRead("NTVtools.ini", "UserDIY", "Commander0", "")
                                If $command_line <> "" Then
                                        ShellExecute($command_line, "", _getdir($command_line))
                                EndIf
                               
                        Case $msg = $DIY[1]
                                $command_line = IniRead("NTVtools.ini", "UserDIY", "Commander1", "")
                                If $command_line <> "" Then
                                        ShellExecute($command_line, "", _getdir($command_line))
                                EndIf
..........................................................
                        Case $msg = $GUI_EVENT_CLOSE
                                GUIDelete($mains)
                                Return
                        Case $msg = $exitbutton
                                GUIDelete($mains)
                                Return
                EndSelect
        WEnd
       
EndFunc   ;==>LnkDiy
Func list()
        For $i = 0 To 39 Step 1
                $button_name = IniRead("NTVtools.ini", "UserDIY", "Button" & $i, "")
                If $button_name = "" Then
                        ContinueLoop
                EndIf
                $tip_line = IniRead("NTVtools.ini", "UserDIY", "Tip" & $i, "")
                $Button_x = 20 + Mod($i - 1, 4) * 155
                $Button_y = 20 + Int(($i - 1) / 4) * 30
                                GUICTRLDelete($DIY[$i])
                $DIY[$i] = CreateCursorLabel($button_name, $Button_x, $Button_y, 140, 20, 10, 400, 4, "ALL", "")
        Next
        GUISetState()
EndFunc   ;==>list

我在这个子程序里面建立的一系列 $DIY 控件 我用GUICTRLDelete($DIY[$i])删掉 再重建 因为控件增加了或者删除了 。但是画面上看不见我新建的控件,而且空白的画面好像也失效了。
我也搞不清楚怎么回事!

另:我发现要是在GUI上临时增加一个控件 点击这个控件无效 需要重启软件才可以
发表于 2011-12-18 21:55:25 | 显示全部楼层
从你的代码,我连你所说的‘画面’都看不到!!!!!!
发表于 2011-12-18 22:55:34 | 显示全部楼层
提问至少提供可测试的源码,这是最基本的。
发表于 2011-12-18 22:56:56 | 显示全部楼层
看来你那代码是“高度机密”
发表于 2011-12-19 01:58:39 | 显示全部楼层
你应该直接做个简单的界面做测试,如果还出问题,就上测试的代码!
如果测试的没问题,再添加后面定义的函数什么的,测试,一步步排查,看是出错在哪一步..
发表于 2011-12-19 03:59:38 | 显示全部楼层
两个超版,一个高级,楼主这问题很抢手呀,听听劝,把基本完整的代码写上,或者把文件上传吧,这么猜谁也帮不了你的
 楼主| 发表于 2011-12-19 08:33:57 | 显示全部楼层
提问至少提供可测试的源码,这是最基本的。
afan 发表于 2011-12-18 22:55



    我把相关的代码都贴出来了!
发表于 2011-12-19 08:39:04 | 显示全部楼层
最近好源码连续不断出现,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 06:53 , Processed in 0.079483 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表