夜猫猫 发表于 2011-6-30 03:53:17

求助.循环按钮读取INI配置文件问题(已解决)

本帖最后由 夜猫猫 于 2011-7-7 12:06 编辑

测试半天还是不能点击相应按钮读取相应配置文件内容.{:face (394):}
请帮忙下....谢谢


点价格按钮.自动读取价格.ini配置文件。点规格按钮就读取规格.INI配置文件。相对应按钮操作。
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 442, 192, 124, $WS_POPUP)
$Edit1 = GUICtrlCreateEdit("", 232, 48, 321, 305)
GUICtrlSetData(-1, "Edit1")
$Button1= GUICtrlCreateButton("退出", 500, 400, 97, 33)
GUICtrlSetOnEvent(-1, "_Exit")

$Cfg = @ScriptDir &"\config.ini"
$Hei = 40
$Car = IniReadSection($Cfg, "分类")
For $i = 1 To $Car
       ;Msgbox ("","",$Car[$i])
           $Button= GUICtrlCreateButton($Car[$i], 24, $Hei, 97, 33)
       $Hei = $Hei +45
           GUICtrlSetOnEvent(-1, "Button")
   Next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###   

While Sleep(10000)
WEnd

Func _Exit()
      Exit
EndFunc
       
Func Button()
      
               
EndFunc
config.ini

[分类]
0=价格
1=规格
2=个数

价格.ini

成品=15
半成品=24
赠送品=11

规格.ini

成品=12支
半成品=8支
赠送品=42支

数量.ini

成品=102箱
半成品=50箱
赠送品=24箱

wua0550 发表于 2011-6-30 09:59:35

你的问题应该在
$Button= GUICtrlCreateButton($Car[$i], 24, $Hei, 97, 33)
生成按扣时使用了相同变量而导致只有最后一个按扣有效
常试在前面加上
$Button="button"&$i
$Button= GUICtrlCreateButton($Car[$i], 24, $Hei, 97, 33)
顺便把
$Button1= GUICtrlCreateButton("退出", 500, 400, 97, 33)
这句改个名字

夜猫猫 发表于 2011-6-30 12:00:39

不行.改那样后就不是我需要的效果了..

夜猫猫 发表于 2011-7-7 02:29:36

本帖最后由 夜猫猫 于 2011-7-7 10:18 编辑

有点头目了...
{:face (245):}
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;Opt("GUIOnEventMode", 1)
Global $button=
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 442, 192, 124, $WS_POPUP)
$Edit1 = GUICtrlCreateEdit("", 232, 48, 321, 305)
GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\规格.ini"))

$Button01= GUICtrlCreateButton("退出", 500, 400, 97, 33)
GUICtrlSetOnEvent(-1, "_Exit")

$Cfg = @ScriptDir &"\config.ini"
$Hei = 40
$Car = IniReadSection($Cfg, "分类")
For $i = 1 To $Car
       ;Msgbox ("","",$Car[$i])
$button[$i]= GUICtrlCreateButton($Car[$i], 24, $Hei, 97, 33)
$Hei = $Hei +45
Next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###   

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case$Button
            GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\规格.ini"))
                Case$button
             GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\价格.ini"))
                Case$Button
             GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\数量.ini"))
          Case$Button01
             _Exit()
        EndSwitch
WEnd

Func _Exit()
      Exit
EndFunc

需要简化.
                     Case$Button
            GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\规格.ini"))
                Case$button
             GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\价格.ini"))
                Case$Button
             GUICtrlSetData($Edit1, FileRead(@ScriptDir&"\数量.ini"))

夜猫猫 发表于 2011-7-7 12:06:10

搞定!
{:face (356):}

wua0550 发表于 2011-7-10 15:33:01

看到最后~~好像解决方法和我说的相差的不是太大,都是通过决解按钮重名来解决的~~~~~

啥就不谢谢我呢~~~{:face (114):}

夜猫猫 发表于 2011-7-11 02:25:09

不是的.我的解决方法是通过鼠标点击事件来获取的.GUIGetCursorInfo
页: [1]
查看完整版本: 求助.循环按钮读取INI配置文件问题(已解决)