魔导 发表于 2012-7-18 22:01:53

For 创建的 按钮在 Case 中如何使用?[已解决]

本帖最后由 魔导 于 2012-7-19 00:02 编辑

#NoTrayIcon
Global $lujin = @ScriptDir
Global $x = 0 , $y = 0
Global $shuzu= IniReadSectionNames ($lujin&'\顾客.ini')
;~ 读取指定INI中的 所有字段名 并储存在 数组中
$Form1 = GUICreate("顾客", 800,500,-1,-1)
For $i = 1 To $shuzu
If IsInt (($i-1)/5) Then
        $x = $i/5*80
        $y = $i
        endif
$bt = GUICtrlCreateButton($shuzu[$i],$x,($i-$y)*30)
;~ 创建一批按钮按钮ID储存在 数组中
Next
GUISetState()
While 1
      $Msg = GUIGetMsg()
      Switch $Msg
                        Case -3
                                Exit
                        EndSwitch
                WEnd
是否可以就用一条 Case 来操作 FOR 创建出来的所有按钮?
PS:按钮的个数不确定
请前辈们指点指点,谢谢各位前辈。
顾客.ini 文件:
[张三]
眼霜= 10
面膜= 113
VIP = 13
[李四]
口红(活动打折的)= 2
小碗(赠送)= 5
[王二]
指甲刀(把)= 11
毛巾(大)= 23
毛巾(小)= 50
耳朵勺(金)= 11
[高大]
欠 = 150元

happytc 发表于 2012-7-18 22:09:42

看了你的标题,真是迷人呀

混了这么久了,都高级了,还问出这样的问题,有点丢脸哟

3mile 发表于 2012-7-18 22:38:05

#NoTrayIcon
Opt("GUIOnEventMode", 1)

Global $lujin = @ScriptDir
Global $x = 0, $y = 0
Global $shuzu = IniReadSectionNames($lujin & '\顾客.ini')
Local $button[$shuzu]
;~ 读取指定INI中的 所有字段名 并储存在 数组中
$Form1 = GUICreate("顾客", 800, 500, -1, -1)
GUISetOnEvent(-3,"_exit")
For $i = 1 To $shuzu
        If IsInt(($i - 1) / 5) Then
                $x = $i / 5 * 80
                $y = $i
        EndIf
        $button[$i-1]=GUICtrlCreateButton($shuzu[$i], $x, ($i - $y) * 30)
        GUICtrlSetOnEvent(-1,"button_id")
;~ 创建一批按钮按钮ID储存在 数组中
Next
GUISetState()
While 1
        Sleep(100)
WEnd

Func button_id()
                $Section=IniReadSection($lujin & '\顾客.ini',GUICtrlRead(@GUI_CtrlId))
                Local $temp=""
                        For $i = 1 To $Section
                                $temp&= $Section[$i] & " = " & $Section[$i]&@CRLF
                        Next
                        MsgBox(0,0,$temp)
EndFunc

Func _exit()
        Exit
EndFunc

afan 发表于 2012-7-18 22:38:47

Local $IniFile = @ScriptDir & '\顾客.ini'
Local $Str = _
                '[张三]' & @CRLF & _
                '眼霜= 10' & @CRLF & _
                '面膜= 113' & @CRLF & _
                'VIP = 13' & @CRLF & _
                '[李四]' & @CRLF & _
                '口红(活动打折的)= 2' & @CRLF & _
                '小碗(赠送)= 5' & @CRLF & _
                '[王二]' & @CRLF & _
                '指甲刀(把)= 11' & @CRLF & _
                '毛巾(大)= 23' & @CRLF & _
                '毛巾(小)= 50' & @CRLF & _
                '耳朵勺(金)= 11' & @CRLF & _
                '[高大]' & @CRLF & _
                '欠 = 150元'
If Not FileExists($IniFile) Then FileWrite($IniFile, $Str)
Global $aUser = IniReadSectionNames($IniFile), $aiBtn[$aUser + 1]

$Form1 = GUICreate("顾客", 800, 500)
For $i = 1 To $aUser
        $aiBtn[$i] = GUICtrlCreateButton($aUser[$i], 10, $i * 30, 80)
Next
GUISetState()

While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case -3
                        Exit
                Case $aiBtn To $aiBtn[$aUser]
                        MsgBox(0, 0, $aUser[$Msg - 2])
        EndSwitch
WEnd
按钮个数超出需做判断、排版处理。

魔导 发表于 2012-7-19 00:01:52

按钮个数超出需做判断、排版处理。
afan 发表于 2012-7-18 22:38 http://www.autoitx.com/images/common/back.gif


    真不愧为大师,小弟真没想到要是用这用着放不下了该怎么办呢。谢谢A大。

qiziyun7410 发表于 2012-12-30 20:00:44

我还是想能写到窗体上!!!!!

hollandmfq 发表于 2014-5-4 10:48:15

雷锋精神传天下!谢谢分享!
页: [1]
查看完整版本: For 创建的 按钮在 Case 中如何使用?[已解决]