1

Тема: AHK: Произвольное срабатывание меток.

Всем доброго здоровья!
Подскажите пожалуйста, как описать аналог примера ниже, чтобы изменение содержимого "Edit" телом подпрограммы происходило только от участия пользователя и не вызывало саму подпрограмму, изменениями, вызванными собственным участием.


Gui, +HWNDmain_h
Gui, Add, Edit,w100 ve1 gCalcResult,0
Gui, Add, Edit,w100 ve2 gCalcResult,0
Gui, Add, Edit,w100 ve3 gCalcResult,0
Gui, Show
return
CalcResult:
	Gui, 1: Submit, NoHide
	if (A_GuiControl == "e1" || A_GuiControl == "e2" && (e1 > 0 && e2 > 0)) {
		e3 := e1 * e2
		ControlSetText,Edit3,% e3,ahk_id%main_h%
	} else if (A_GuiControl == "e1" || A_GuiControl == "e3" && (e1 > 0 && e3 > 0)) {
		e2 := e1 / e3
		ControlSetText,Edit2,% e2,ahk_id%main_h%
	}
return
GuiClose:
	ExitApp

2

Re: AHK: Произвольное срабатывание меток.


Gui, +HWNDmain_h
Gui, Add, Edit,w100 +HWNDE_1 ve1 gCalcResult,0
Gui, Add, Edit,w100 +HWNDE_2 ve2 gCalcResult,0
Gui, Add, Edit,w100 +HWNDE_3 ve3 gCalcResult,0
Gui, Show
return

CalcResult:
Gui, 1: Submit, NoHide
if (A_GuiControl == "e1")
  return
if (!do3 and A_GuiControl == "e2")
  do2=1
if (!do2 and A_GuiControl == "e3")
  do3=1

if (do3 and A_GuiControl == "e2")
{
  do3=
  return
}
if (do2 and A_GuiControl == "e3")
{
  do2=
  return
}

if (A_GuiControl == "e1" || A_GuiControl == "e2") {
  e3 := e1 * e2
  ControlSetText,,% e3,ahk_id%E_3%
 } else if (A_GuiControl == "e1" || A_GuiControl == "e3") {
  e2 := e1 / e3
  ControlSetText,,% e2,ahk_id%E_2%
 }
return

GuiClose:
ExitApp
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.