Что нового

Простейшая форма

L-Sid

Новичок
Сообщения
9
Репутация
0
Имеются два элемента: input и button. Нужно чтобы при наличии определенного текста в input и при нажатии button выполнялась определенная функция, например закрытие приложения.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Код:
Case $Button
	if GUICtrlRead($Input) <> "" Then Func()
 
Автор
L-Sid

L-Sid

Новичок
Сообщения
9
Репутация
0
Код:
$Input = GUICtrlCreateInput(" "& @CRLF, 190,332,150,25,$ES_MULTILINE)
$Button = GUICtrlCreateButton("OK", 342,332,24,24,$BS_DEFPUSHBUTTON)
While 1
Select
	Case $Button
    if GUICtrlRead($Input) = "01234" Then Exit
	EndSelect
WEnd


Сделал так, и теперь ввожу текст "01234" в $Button и не нажимая кнопки окно закрывается. А надо чтобы нужно было нажимать кнопку. В чем подвох не пойму.. )
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
L-Sid
Так попробуйте
Код:
;...
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $Button
			If GUICtrlRead($Input) = "01234" Then Exit
	EndSwitch
WEnd
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ты забыл GUIGetMsg()
Код:
$Input  = GUICtrlCreateInput(" "& @CRLF, 190,332,150,25,$ES_MULTILINE)
$Button = GUICtrlCreateButton("OK", 342,332,24,24,$BS_DEFPUSHBUTTON)
While 1
    $msg = GUIGetmsg()
    Select
        Case $msg = $Button
        if GUICtrlRead($Input) = "01234" Then Exit
    EndSelect
WEnd
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
L-Sid [?]
В чем подвох не пойму.. )
Код:
While 1
Select
Case $Button	; Если Select находит среди Case выражение  равное значению $Button 
				; (а оно равно уже 3! строка ниже вам это покажет) то вслед за Case 
				; будет выполнено условие! А именно $Input = "01234"! Вот тут, подвох!
				; НЕ ЛЕНИМСЯ ЧИТАТЬ, ВСЁ ЭТО НАПИСАНО В СПРАВКЕ!!! :)  НЕ СПЕШИМ ДЕЛАТЬ ВЫВОДЫ!
	ConsoleWrite($Button &@CRLF)
    if GUICtrlRead($Input) = "01234" Then Exit
    EndSelect
WEnd
 
Верх