Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для beve

Старожил


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

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


Цитата sashadeg:
Что нужно дополнить вот сюда? »
Просто дополнить, что то в эту строчку маловато будет, но вот так можно:
Код: Выделить весь код
#include <GUIConstantsEx.au3>
;ниже в переменных хранится текст, который будет в инпутах при запуске
$Tekst_v_inpute1="Введите текст в инпут1"
$Tekst_v_inpute2="Введите текст в инпут2"
$Tekst_v_inpute3="Введите текст в инпут3"

$GUI = GUICreate("AutoIt Example", 300, 160)
$Label=GUICtrlCreateLabel("Введите нужный текст во все поля:", 20, 10, 260, 20)
Controlfocus("AutoIt Example","",$Label) ;нужно только чтобы увести фокусировку от инпута 1, где фокус по умолчанию будет. Очень важно, если поменяеш название окна "AutoIt Example" на другое, то впиши то другое название и сюда.

$Input_1 = GUICtrlCreateInput($Tekst_v_inpute1, 20, 40, 260, 20)
$Input_2 = GUICtrlCreateInput($Tekst_v_inpute2, 20, 70, 260, 20)
$Input_3 = GUICtrlCreateInput($Tekst_v_inpute3, 20, 100, 260, 20)

$Ok_Button = GUICtrlCreateButton("OK", 40, 130, 60, 20)
$Cancel_Button = GUICtrlCreateButton("Отмена", 200, 130, 60, 20)
GUISetState(@SW_SHOW, $GUI)

$IsFocused_input1=0
$IsFocused_input2=0
$IsFocused_input3=0

While 1
Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
        Exit ;тут выход вобще из скрыпта при закрытии Gui окна
    Case $Cancel_Button
        GUIDelete($GUI) ;удаляем gui, так как уже не надобно
        MsgBox(0,"Внимание","Была нажата кнопка Отмена поэтому будет выход из цикла")
        ExitLoop
    Case $Ok_Button
        $sText1 = GUICtrlRead($Input_1)
        $sText2 = GUICtrlRead($Input_2)
        $sText3 = GUICtrlRead($Input_3)
    ; Дальше идет проверка, не пустые ли инпуты, и изменен ли текст в инпутах из Начального положения, которое было в них при запуске.
        If $sText1=="" Or  $sText1==$Tekst_v_inpute1 Or $sText2=="" Or $sText2==$Tekst_v_inpute2 Or $sText3=="" Or $sText3==$Tekst_v_inpute3 then
        MsgBox(0,'Внимание','Вы не ввели текст во всех полях')
        else
        GUIDelete($GUI) ;удаляем gui, так как уже не надобно
        MsgBox(0,"Результат",$sText1 & @CRLF &$sText2 & @CRLF & $sText3) ;можно обойтись без этого сообщения, оно нужно лишь чтобы показать что в переменных $sText1, $sText2, $sText3 уже хранится текст введенный ранее в инпуты
        Exitloop
        endif
EndSwitch
_OrInput_IsFocused()
Wend 
;дальше может быть любой набор команд...

Func _OrInput_IsFocused()
If _ControlIsFocused($GUI, $Input_1) And $IsFocused_input1=0 Then 
$IsFocused_input1=1 
GUICtrlSetData($Input_1,"") ;проверка, есть ли фокусировка на $Input_1, и если есть то очищаем инпут 
ElseIf _ControlIsFocused($GUI, $Input_2) And $IsFocused_input2=0 Then 
$IsFocused_input2=1 
GUICtrlSetData($Input_2,"") ;проверка, есть ли фокусировка на $Input_2, и если есть то очищаем инпут
ElseIf _ControlIsFocused($GUI, $Input_3) And $IsFocused_input3=0 Then 
$IsFocused_input3=1 
GUICtrlSetData($Input_3,"") ;проверка, есть ли фокусировка на $Input_3, и если есть то очищаем инпут
EndIf 
EndFunc ;_OrInput_IsFocused()

Func _ControlIsFocused($hWnd, $nCID) 
Return ControlGetHandle($hWnd, '', $nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd)) 
EndFunc
Если не понятно, зачем нужны функции _OrInput_IsFocused() и _ControlIsFocused() то просто не обращай на них внимания, главное понять суть...

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:49, 05-04-2009 | #3