1 (изменено: Pokerist, 2012-09-12 16:24:04)

Тема: AHK: Считывание информации из окна GUI

Создал окно Gui, в котором несколько элементов могут менять один и тот же параметр.

http://s019.radikal.ru/i640/1209/4a/f0a19a615c8f.jpg

Правильно я понял, что для согласованния показаний есть только один способ:  достаточно часто отслеживать через "Submit"  показания всех элементов, запоминать, а при изменениях в каком-либо элементе, отправлять другим, связанным с ним, соответсвующее значение?

2

Re: AHK: Считывание информации из окна GUI

Нет, в данном случае Submit не нужна, можно воспользоваться опцией AltSubmit в слайдере.
Пример:

Gui, Color, 0xCCC8C0
Gui, Add, Text, x15 y15 w30 cRed Center, Red
Gui, Add, Text, xp-2 yp+30 wp cGreen Center, Green
Gui, Add, Text, xp yp+30 wp cBlue Center, Blue

Red := 255   ; начальные значения цвета
Green := 0
Blue := 0
Options := "x50 w200 h20 Range0-255 ToolTip AltSubmit"  ; обрати внимание на опцию AltSubmit
Gui, Add, Slider, vRed gColorSet %Options% yp-60, % Red
Gui, Add, Slider, vGreen gColorSet %Options% yp+30, % Green
Gui, Add, Slider, vBlue gColorSet %Options% yp+30, % Blue

Gui, Add, Text, vRedValue x+6 yp-59 w20 cRed, % Red
Gui, Add, Text, vGreenValue xp yp+30 wp cGreen, % Green
Gui, Add, Text, vBlueValue xp yp+30 wp cBlue, % Blue

Gui, 2: -Caption +ToolWindow +Parent1
Gui, 2:Color, % GetColorHexString(Red, Green, Blue)

Gui, Show, h200
Gui, 2:Show, x70 y115 w150 h50
return

ColorSet:
    GuiControl,, % A_GuiControl . "Value", % %A_GuiControl%   ; переменная A_GuiControl содержит имя слайдера, запустившего метку
    Gui, 2:Color, % GetColorHexString(Red, Green, Blue)   ; переменные Red, Green, Blue содержат текущие значения
    return

GuiClose:
    ExitApp
    
GetColorHexString(Red, Green, Blue)
{
    Hex := "123456789ABCDEF0"
    Color := (Red << 16)|(Green << 8)|Blue
    Loop 6
        ColorHexString .= SubStr(Hex, (Color>>(24-4*A_Index))&15, 1)
    Return "0x" ColorHexString
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Считывание информации из окна GUI

teadrinker пишет:

Нет, в данном случае Submit не нужна, можно воспользоваться опцией AltSubmit в слайдере.

Мне бы хотелось, чтобы пользователь мог вводить данные также  и через Edit, вручную или через UpDown, а у них я что-то UpDown AltSubmit не вижу.

4

Re: AHK: Считывание информации из окна GUI

Тогда нужно воспользоваться Gui Submit либо GuiControlGet по метке перехода.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder