Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, спасибо.

Попробую сформулировать задачу более конкретно.
У меня есть цикл For To Next. StopValue - у меня будет двумерным массивом (Вернее, количеством элементов этого массива.).
Внутри этого цикла есть идентификатор кнопки.
С каждым новым циклом он меняется.
Будет вызываться одна и та же функция, но в зависимости от этого идентификатора, параметры будут меняться.
Соответственно, я не могу точно получить событие через Switch GUIGetMsg() EndSwitch.
В этом вся трудность.
Если бы, хотя-бы GUICtrlSetOnEvent($p, "_a1('Bavaria')") работала, то вся проблема бы ушла.
Если использовать GUICtrlRead($p) вне цикла, то я буду всегда получать последний элемент,
а мне нужен конкретный, в зависимости от номера цикла.
Получается замкнутый круг.
Вызов вне цикла - результат последний цикл.
Вызов внутри цикла - есть все динамические переменные, но невозможно вызвать функцию с конкретными параметрами.

Код: Выделить весь код
Opt("GUIOnEventMode", 1)
GUICreate("111")
$p = 0
For $i = 0 To 7
$p = $p + $i
$p = GUICtrlCreateButton('Start', 15, 20, 160, 22, 0x0100)
GUICtrlSetOnEvent($p, "_a1('Bavaria')")
; GUICtrlSetOnEvent($p, "_a1")
Next
GUISetState()
GUISetOnEvent(-3, "_CLOSE")

While 1
Sleep(1000)
WEnd

; Func _a1()
Func _a1($a)
; MsgBox(0, "title", '1111')
MsgBox(0, "title", $a)
EndFunc

Func _CLOSE() 
Exit 
EndFunc

Последний раз редактировалось Атос, 06-06-2017 в 10:05.


Отправлено: 09:29, 06-06-2017 | #4