Что нового

Очистка всех полей Input

andriy111

Новичок
Сообщения
58
Репутация
0
Здравствуйте!
Возможно ли какой-то функцией очистить все поля ввода, ила надо каждое отдельно?
Спасибо!
 

atlake

Новичок
Сообщения
40
Репутация
0
Не знаю как очистить сразу все.
Я очищаю каждое отдельно.

Код:
#include <GUIConstantsEx.au3>

GUICreate("window", 220, 170)
$input1 = GUICtrlCreateInput("1", 10, 10, 200, 21)
$input2 = GUICtrlCreateInput("2", 10, 40, 200, 21)
$input3 = GUICtrlCreateInput("3", 10, 70, 200, 21)
$input4 = GUICtrlCreateInput("4", 10, 100, 200, 21)
$btn1 = GUICtrlCreateButton("Очистить все поля", 10, 130, 200, 33)
GUISetState()

While 1
   Switch GUIGetMsg()
	  Case -3
		 Exit
	  Case $btn1
		 GUICtrlSetData($input1, "")
		 GUICtrlSetData($input2, "")
		 GUICtrlSetData($input3, "")
		 GUICtrlSetData($input4, "")
   EndSwitch
WEnd
 

atlake

Новичок
Сообщения
40
Репутация
0
щас функцию напишу по очистке


Добавлено:
Сообщение автоматически объединено:

_ClearInput($input)
Очищает поля ввода которые в массиве.

Код:
#include <GUIConstantsEx.au3>

Global $input[10]	; ОБЪЯВЛЯЕМ МАССИВ ДЛЯ - GUICtrlCreateInput

GUICreate("window", 220, 170)
; GUICtrlCreateInput - ЗАСОВЫВАЕМ В МАССИВ
$input[0] = GUICtrlCreateInput("1", 10, 10, 200, 21)
$input[1] = GUICtrlCreateInput("2", 10, 40, 200, 21)
$input[2] = GUICtrlCreateInput("3", 10, 70, 200, 21)
$input[3] = GUICtrlCreateInput("4", 10, 100, 200, 21)
$btn1 = GUICtrlCreateButton("Очистить все поля", 10, 130, 200, 33)
GUISetState()

While 1
   Switch GUIGetMsg()
      Case -3
         Exit
      Case $btn1
         _ClearInput($input)	; В ПАРАМЕТРЕ УКАЗЫВАЕМ МАССИВ С - GUICtrlCreateInput
   EndSwitch
WEnd

Func _ClearInput($ci_array)
   $ci_ubound = UBound($ci_array)
   $ci_ub = $ci_ubound
   For $ci_for = 1 To $ci_ubound
	  $ci_ub -= 1
	  GUICtrlSetData($ci_array[$ci_ub], "")
   Next
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
andriy111 [?]
Возможно ли какой-то функцией очистить все поля ввода
Пример:

Код:
#include <GUIConstantsEx.au3>

$hGUI = GUICreate('_ControlSetAllInputs', 200, 160)

$iInput1 = GUICtrlCreateInput('Text1', 20, 20, 160, 20)
$iInput2 = GUICtrlCreateInput('Text2', 20, 50, 160, 20)
$iInput3 = GUICtrlCreateInput('Text3', 20, 80, 160, 20)

$iClear_Button = GUICtrlCreateButton('Clear All', 20, 120, 80, 20)

GUISetState(@SW_SHOW, $hGUI)

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $iClear_Button
			_ControlSetAllInputs($hGUI)
	EndSwitch
WEnd

Func _ControlSetAllInputs($hWnd, $sText = '', $bOnlyVisible = True)
	Local $aClasses = StringSplit(WinGetClassList($hWnd), @LF)
	Local $iC = 0
	
	For $i = 1 To $aClasses[0]
		If $aClasses[$i] = 'Edit' Then
			$iC += 1
			
			If Not $bOnlyVisible Or ($bOnlyVisible And ControlCommand($hWnd, '', $aClasses[$i] & $iC, 'IsVisible')) Then
				ControlSetText($hWnd, '', $aClasses[$i] & $iC, $sText)
			EndIf
		EndIf
	Next
EndFunc
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Можно и так, если знаешь сколько у тебя полей
Код:
#include <GUIConstantsEx.au3>
$gui=GUICreate("window", 220, 170)
$input1 = GUICtrlCreateInput("1", 10, 10, 200, 21)
$input2 = GUICtrlCreateInput("2", 10, 40, 200, 21)
$input3 = GUICtrlCreateInput("3", 10, 70, 200, 21)
$input4 = GUICtrlCreateInput("4", 10, 100, 200, 21)
$btn1 = GUICtrlCreateButton("Очистить все поля", 10, 130, 200, 33)
GUISetState()
While 1
   Switch GUIGetMsg()
		Case -3
			Exit
        Case $btn1
			For $i=1 To 4;4 потому что элементов 4
				ControlSetText($gui,'',"[class:Edit; instance:"&$i&"]",'')
			Next
   EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

CreatoR, вы опередили меня :smile: и метод по лучше)
 
Верх