Advertisement
AZJIO

_InputBox

Sep 13th, 2012
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.32 KB | None | 0 0
  1. #include <WindowsConstants.au3>
  2. #include <GUIConstantsEx.au3>
  3.  
  4. ; En
  5. $LngCheck = 'Not to ask any more'
  6. $LngYes = 'Yes'
  7. $LngNo = 'No'
  8. $sTitle = 'Message'
  9. $sText = 'Use as default?'
  10.  
  11. ; Ru
  12. ; если русская локализация, то русский язык
  13. If @OSLang = 0419 Then
  14.     $LngCheck = 'Больше не спрашивать'
  15.     $LngYes = 'OK'
  16.     $LngNo = 'Отмена'
  17.     $sTitle = 'Сообщение'
  18.     $sText = 'Использовать по умолчанию?'
  19. EndIf
  20.  
  21. $hGUI = GUICreate('My program', 420, 250)
  22.  
  23. $MsgBox = GUICtrlCreateButton("Button", 20, 20, 90, 30)
  24. $StatusBar = GUICtrlCreateLabel('', 20, 60, 330, 150)
  25. GUISetState()
  26.  
  27. While 1
  28.     Switch GUIGetMsg()
  29.         Case $MsgBox
  30.             $iAnswer = _InputBox($sTitle, $sText, 'Text', 200, 100, $LngYes, $LngNo, $hGUI)
  31.             GUICtrlSetData($StatusBar, 'input field = ' & $iAnswer & @CRLF & 'button = ' & @extended & @CRLF & 'Error = ' & @error)
  32.         Case $GUI_EVENT_CLOSE
  33.             Exit
  34.     EndSwitch
  35. WEnd
  36.  
  37. ; функция создаёт диалог с полемм ввода.
  38. ; Функция позволяет установить тексты всех элементов окна, размеры окна, чтобы вместить текст вопроса и умолчальное состояние чекбокса.
  39. ; Параметры:
  40. ;               $sTitle - Заголовок окна
  41. ;               $sText - Текст окна
  42. ;               $iSizeX - Ширина окна, по умолчанию 270
  43. ;               $iSizeY - Высота окна, по умолчанию 170
  44. ;               $sDefault - текст по умолчанию
  45. ;               $LngYes - текст кнопки "Да", по умолчанию "Да"
  46. ;               $LngNo - текст кнопки, "Нет", по умолчанию "Нет"
  47. ;               $hWnd - дескриптор родительского окна
  48. ; Возвращает: Текст поля ввода, @extended:
  49. ;               0 - Нет, Отмена или закрытие окна
  50. ;               1 - Да, OK
  51. ; в случае, если потребуется отличать закрытие окна от кнопки "Нет" используйте проверку @error
  52. Func _InputBox($sTitle, $sText, $sDefault = '', $iSizeX = 270, $iSizeY = 170, $LngYes = 'OK', $LngNo = 'Cancel', $hWnd = 0)
  53.     Local $hGUIChild, $iYes, $iNo, $iInput, $iMode, $iAnswer = 0, $iError = 0, $iTrWnd = 0
  54.     If $iSizeX < 170 Then $iSizeX = 170
  55.     $iMode = Opt('GUIOnEventMode', 0)
  56.     If IsHWnd($hWnd) Then
  57.         GUISetState(@SW_DISABLE, $hWnd)
  58.         $iTrWnd = 1
  59.     Else
  60.         $hWnd = 0
  61.     EndIf
  62.    
  63.     $hGUIChild = GUICreate($sTitle, $iSizeX, $iSizeY, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU, $WS_POPUP), $WS_EX_TOPMOST, $hWnd)
  64.     GUICtrlCreateLabel($sText, 10, 10, $iSizeX - 20, $iSizeY - 75)
  65.    
  66.     $iInput = GUICtrlCreateInput($sDefault, 10, $iSizeY - 65, $iSizeX - 20, 20)
  67.    
  68.     $iYes = GUICtrlCreateButton($LngYes, ($iSizeX - 150) / 2, $iSizeY - 40, 70, 28)
  69.     $iNo = GUICtrlCreateButton($LngNo, ($iSizeX - 150) / 2 + 80, $iSizeY - 40, 70, 28)
  70.     GUISetState(@SW_SHOW, $hGUIChild)
  71.     While 1
  72.         Switch GUIGetMsg()
  73.             Case $iYes
  74.                 $iAnswer = 1
  75.                 ExitLoop
  76.             Case $iNo
  77.                 ExitLoop
  78.             Case $GUI_EVENT_CLOSE
  79.                 $iError = 1
  80.                 ExitLoop
  81.         EndSwitch
  82.     WEnd
  83.     $iInput = GUICtrlRead($iInput)
  84.     If $iTrWnd Then GUISetState(@SW_ENABLE, $hWnd)
  85.     GUIDelete($hGUIChild)
  86.     Opt('GUIOnEventMode', $iMode)
  87.     Return SetError($iError, $iAnswer, $iInput)
  88. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement