Что нового

[Элементы GUI] Передача параметров функции через GUICtrlSetOnEvent

Nerfair

Новичок
Сообщения
7
Репутация
0
Код:
$x = GUICtrlCreateInput("", 55, 300, 183, 20)
$y = GUICtrlCreateInput("", 55, 322, 183, 20)
GUICtrlCreateButton("Сохранить", 240, -1, 70, 20)
GUICtrlSetOnEvent(-1, "RegPressed(" & $x & ", " & $y &")")

Func RegPressed($name, $key)
     MsgBox(0, "Ключи", "Имя: " & $name & " Ключ: " & $key )
EndFunc


Так же попробовал

Код:
$regpA = GUICtrlCreateInput("", 55, 300, 183, 20)
$regpB =  GUICtrlCreateInput("", 55, 322, 183, 20)
GUICtrlCreateButton("Сохранить", 240, -1, 70, 20)
GUICtrlSetOnEvent(-1, "RegPressed")

Func RegPressed()
     MsgBox(0, "Ключи", "Имя: " & $regpA & " Ключ: " & $regpB )
EndFunc


Почему то выдает Имя: 26 Ключ: 27


В общем нужно через GUICtrlSetOnEvent(-1, "RegPressed") передать значения GUICtrlCreateInput, но как это сделать? :( Как не возился, ничего не выходит.
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Nerfair [?]
В общем нужно через GUICtrlSetOnEvent(-1, "RegPressed") передать значения GUICtrlCreateInput, но как это сделать?
Читать справку. Ну а если лень, то:
Код:
$xdata=GUICtrlRead($x)
$ydata=GUICtrlRead($y)
 
Автор
Nerfair

Nerfair

Новичок
Сообщения
7
Репутация
0
r35p3ct!
Cпасибо! Как раз зашел в тему что бы сказать что нашел информацию про GUICtrlRead
С наступающим :beer:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
По теме «Передачи параметров функции через GUICtrlSetOnEvent», для этого есть OnEvent UDF, см. вложение.

Код:
#include <GUIConstantsEx.au3>
#include "OnEvent_UDF.au3"

_SetOnEvent("{F1}", "HotKey_F1_Event", "Help needed!")

Opt("GuiOnEventMode", 1)

$GUI = GUICreate("OnEvent_UDF Demo!", 300, 200)
_SetOnEvent($GUI_EVENT_CLOSE, "_Main_Events", "Before we Exit, we leave some message to our Users :)")

$Button1 = GUICtrlCreateButton("Button 1", 20, 40, 60, 20)
_SetOnEvent(-1, "_Main_Events", "Button 1")

$Button2 = GUICtrlCreateButton("Button 2", 20, 80, 60, 20)
_SetOnEvent(-1, "_Main_Events", "Button 2")

GUICtrlCreateLabel("Message: ", 20, 170, -1, 20)
GUICtrlSetColor(-1, 0xFF0000)

$Message_Ctrl = GUICtrlCreateLabel("", 80, 171, 200, 30)
GUICtrlSetColor(-1, 0x0000FF)

GUISetState(@SW_SHOW, $GUI)

While 1
	Sleep(100)
WEnd

Func _Main_Events($sParam)
	Switch @GUI_CtrlId
		Case $GUI_EVENT_CLOSE
			Set_Message_Data($sParam)
			
			Sleep(2000)
			
			Exit ConsoleWrite($sParam & @CRLF)
		Case $Button1, $Button2
			Set_Message_Data("CtrlID(" & @GUI_CtrlId & "): " & $sParam)
	EndSwitch
EndFunc

Func HotKey_F1_Event($sParam)
	Set_Message_Data("HotKeyPressed(" & @HotKeyPressed & "): " & $sParam)
EndFunc

Func Set_Message_Data($sData)
	GUICtrlSetData($Message_Ctrl, $sData)
EndFunc
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Nerfair, не забывайте отмечать тему решенной, когда нейден ответ на вопрос!
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Прикрепил.
 

Вложения

  • OnEvent_UDF.zip
    2.2 КБ · Просмотры: 19
  • Like
Реакции: Norm
Верх