1 (изменено: ypppu, 2015-06-02 10:38:21)

Тема: AHK: Подпрограмма кнопки в GUI

Проблема в том, что в последнем окне не работают кнопки. Пытался найти причину эту, но не смог. Выяснил одно: если
заменить кнопку в 6ом окне

Gui, 6: Add, Button, w242 yp+22 xp-6, Продолжить
Gui, 6: show
return

6ButtonПродолжить:

на

Gui, 6:show
sleep 2000
goto, Продолжить

Продолжить:

Увы, такой способ плох...

+ Full Code
!1::
Gui, 6: -SysMenu
Gui, 6: Add, GroupBox, h80 w240, Выберите функции для отпимизации:
loop, Bin\*.ahk,, 0 ; Данный выбор не имеет значения
{
    MAXFUNC++    
    Gui, 6: Add, Checkbox, yp+15 xs+5 vFun%A_Index%, %A_LoopFileName%
}
Gui, 6: Add, Button, w242 yp+22 xp-6, Продолжить
Gui, 6: show
return

6ButtonПродолжить:
Gui, 6: Submit, nohide
count_segments = 0
loop %MAXFUNC%
    count_segments:=count_segments+Fun%A_Index%
count_segments  = 1
if count_segments = 0
{
   soundplay *16
    Gui, 3: -SysMenu
    Gui, 3: Add, Text,, Вы не выбрали функции!
    Gui, 3: Add, Button, xp yp+15 wp, Назад
    Gui, 3: Show
    return
}

Gui, 6: destroy
segment = 0
    segment:=100//count_segments
Gui,  -SysMenu ; Вот в этом окне не работают кнопки
Gui, Add, Progress, yp+20 x3 w200 h20 -Smooth vPR, 0
Gui, Add, Text, vtext x30 y5 w200, Запуск...
Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы

GuiControl,Disable, Вернутся`nв &меню
GuiControl,Disable, Выйти из &программы
Gui, Show,w206 
sleep 2000
loop, Bin\*.ahk
    if Fun%A_Index% = 1
    {
        filereadline, FUNCVERB, Bin\FUNCSDATA.txt, %A_Index%
        GuiControl,,text, %FUNCVERB%
        RunWait, Bin\%A_LoopFileName%, 5
        GuiControl,, PR, +%segment%
    }

GuiControl,, PR, 100
GuiControl,,text, Оптимизация завершена!
GuiControl,Enable, Вернуться`nв &меню
GuiControl,Enable, Выйти из &программы
return

ButtonВернутьсявменю:
ButtonВыйтиизпрограммы:
ButtonТест:
Buttonназад:
msgbox, test
return

2

Re: AHK: Подпрограмма кнопки в GUI

Demy, придумайте какое-нибудь более внятное название для темы.

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

3

Re: AHK: Подпрограмма кнопки в GUI

По идее, подпрограмма 6ButtonПродолжить: должна запускаться. Проверяйте, нет ли в ней самой ошибок.

4 (изменено: Alectric, 2015-06-02 11:00:44)

Re: AHK: Подпрограмма кнопки в GUI

Лучше делать индивидуальные метки перехода, не зависящие от названия кнопки: "gMyLabel".


Gui, Add, Button, yp+35 x3 w100 gGoBack, Вернутся`nв &меню

GoBack:
Msgbox
Return

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

5 (изменено: Demy, 2015-06-02 16:00:14)

Re: AHK: Подпрограмма кнопки в GUI

ypppu пишет:

По идее, подпрограмма 6ButtonПродолжить: должна запускаться. Проверяйте, нет ли в ней самой ошибок.

6ButtonПродолжить 

работает, а вот

Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы

нет

6

Re: AHK: Подпрограмма кнопки в GUI

Alectric пишет:

Лучше делать индивидуальные метки перехода, не зависящие от названия кнопки: "gMyLabel".

Большое спасибо

7

Re: AHK: Подпрограмма кнопки в GUI

Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы

Убрать символы и пробелы:

Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы
Gui, Show, AutoSize
return

ButtonВыйтиизпрограммы:
MsgBox
return

ButtonВернутсявменю:
MsgBox, 1
return

GuiClose:
ExitApp
Как сказал мой дед - Я твой дед

8

Re: AHK: Подпрограмма кнопки в GUI

Demy, оформите код, как положено.

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

9

Re: AHK: Подпрограмма кнопки в GUI

sergeiplugatyr, в ФуллКоде так и написано, но это не работает..

10

Re: AHK: Подпрограмма кнопки в GUI

Тут дело в том, что в новой ветке окном по умолчанию считается то окно, которое её запустило. Соответственно, этот код

Gui,  -SysMenu ; Вот в этом окне не работают кнопки
Gui, Add, Progress, yp+20 x3 w200 h20 -Smooth vPR, 0
Gui, Add, Text, vtext x30 y5 w200, Запуск...
Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы

относится к Gui 6, т. к. запущен его меткой, а явным образом номер текущего окна не указан. Значит, либо к меткам кнопок нужно было добавить шестёрку, либо перед созданием окна указать окно по умолчанию для ветки:

Gui, 1:Default
Gui,  -SysMenu ; Вот в этом окне не работают кнопки
Gui, Add, Progress, yp+20 x3 w200 h20 -Smooth vPR, 0
Gui, Add, Text, vtext x30 y5 w200, Запуск...
Gui, Add, Button, yp+35 x3 w100, Вернутся`nв &меню
Gui, Add, Button, xp yp+43 w200, назад
Gui, Add, Button, x103 yp-43 w100, Выйти из &программы
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder