找回密码
 加入
搜索
查看: 3886|回复: 6

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

  [复制链接]
发表于 2012-7-18 22:01:53 | 显示全部楼层 |阅读模式
本帖最后由 魔导 于 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[0]
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元
发表于 2012-7-18 22:09:42 | 显示全部楼层
看了你的标题,真是迷人呀

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

评分

参与人数 1金钱 +10 收起 理由
魔导 + 10 快乐兄谦虚了,

查看全部评分

发表于 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[0]]
;~ 读取指定INI中的 所有字段名 并储存在 数组中
$Form1 = GUICreate("顾客", 800, 500, -1, -1)
GUISetOnEvent(-3,"_exit")
For $i = 1 To $shuzu[0]
        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[0][0]
                                $temp&= $Section[$i][0] & " = " & $Section[$i][1]&@CRLF
                        Next
                        MsgBox(0,0,$temp)
EndFunc

Func _exit()
        Exit
EndFunc

评分

参与人数 1金钱 +30 贡献 +11 收起 理由
魔导 + 30 + 11 谢三笑元老,特别合用

查看全部评分

发表于 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[0] + 1]

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

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

评分

参与人数 1金钱 +20 贡献 +15 收起 理由
魔导 + 20 + 15 A大大驾光临,万分荣幸

查看全部评分

 楼主| 发表于 2012-7-19 00:01:52 | 显示全部楼层
按钮个数超出需做判断、排版处理。
afan 发表于 2012-7-18 22:38



    真不愧为大师,小弟真没想到要是用这用着放不下了该怎么办呢。谢谢A大。
发表于 2012-12-30 20:00:44 | 显示全部楼层
我还是想能写到窗体上!!!!!
发表于 2014-5-4 10:48:15 | 显示全部楼层
雷锋精神传天下!谢谢分享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 21:00 , Processed in 0.087934 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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