Что нового

Элементы GUI Обработка нажатий кнопок

Firestarter

Новичок
Сообщения
54
Репутация
0
Добра всем.

Подскажите как правильно мне написать обработку нажатий кнопок? В данном примере приходится чуть ли не по 20 раз нажимать на кнопки чтобы они сработали.

Код:
For $a = 1 to 10
$Button[$a] = GUICtrlCreateButton($name[$a], $x*20, $y*20, 15, 15)
Next

GUISetState(@SW_SHOW)
$a = 1
Do

$iMSG = GUIGetMsg()
Switch $iMSG

Case $Button[$a]
_ScriptRestart()

case -3
Exit


Sleep (99)
EndSwitch
$a = $a + 1
if $a == 11 Then $a = 1
Until $a = 100
 

damien2008

Осваивающий
Сообщения
178
Репутация
34
я думаю, главный цикл должен быть не "do", а "while", и задержку выше 10 лучше не делать
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
Так же воспринимает примерно 1 из 20 нажатий.

Код:
For $a = 1 to 10
$Button[$a] = GUICtrlCreateButton($name[$a], $x*20, $y*20, 15, 15)
Next

GUISetState(@SW_SHOW)
$a = 1
While $a <= 100

$iMSG = GUIGetMsg()
Switch $iMSG

Case $Button[$a]
_ScriptRestart()

case -3
Exit

EndSwitch

$a = $a + 1
if $a == 11 Then $a = 1
WEnd
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
For $a = 1 To 10
    $Button[$a] = GUICtrlCreateButton($name[$a], $x * 20, $y * 20, 15, 15)
    If $a = 1 Then
        $b = $Button[$a]
    Else
        $c = $Button[$a]
    EndIf
Next

GUISetState(@SW_SHOW)

Do
    $iMSG = GUIGetMsg()
    Switch $iMSG
        Case $b To $c
            _ScriptRestart()
        Case -3
            Exit
    EndSwitch
Until $a = 100
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
Спасибо, все как бы работает но, мне вдобавок нужно при нажатии кнопки записывать в INI нажатую кнопку.

Код:
Case $b To $c
IniWrite($INI, 'All', 'File', $files[$a])
_ScriptRestart()


как правильно это сделать?
Сообщение автоматически объединено:

Решено, спасибо вам.
 
Последнее редактирование:
Верх