1

Тема: AHK: GUi Hide/Show по группам элементов управления

Пример кода максимально упрощенный:


;Первая группа
Gui, Add, Text, x10 y10 , Какой то текст
Gui, Add, Edit , xp yp+20, Какие то данные


;Вторая группа
Gui, Add, Text, x10 y10 Hidden, Какой то текст 2
Gui, Add, Text, x10 yp+20 Hidden, Какой то текст три

Gui, Add, Button, x10 y50, Change

Gui, Show
return

ButtonChange:
return

GuiClose:
ExitApp

Суть: При нажатии Change элементы первой группы скрываются, элементы второй отображаются, при повторном нажатии все с точностью до наоборот.
Про GuiControl, Hide\Show знаю, интересует именно вопрос работы с группой, потому что в нормальном не упрощенном скрипте количество элементов гуи значительно больше чем 4, и групп порядка 10.
Please Help Me. Заранее спасибо.

2

Re: AHK: GUi Hide/Show по группам элементов управления

Что то типа этого:


;Первая группа 
Gui, Add, Text, x10 y10 vGroup_1_1, Какой то текст 1
Gui, Add, Edit , xp yp+20 vGroup_1_2, Какие то данные 1
 
;Вторая группа
Gui, Add, Text, x10 y10 Hidden vGroup_2_1, Какой то текст 2
Gui, Add, Edit, x10 yp+20 Hidden vGroup_2_2, Какой то текст 2
 
;3 группа
Gui, Add, Text, x10 y10 Hidden vGroup_3_1, Какой то текст 3
Gui, Add, Edit, x10 yp+20 Hidden vGroup_3_2, Какой то текст 3
 
Gui, Add, Button, x10 y50, Change

Gui, Show
CurGroup := 1, MaxGroup := 3
return

ButtonChange: 
    Loop 2 
        GuiControl, Hide, Group_%CurGroup%_%A_Index% 
        
    CurGroup := CurGroup = MaxGroup ? 1 : CurGroup + 1
    
    Loop 2 
        GuiControl, Show, Group_%CurGroup%_%A_Index%     
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: GUi Hide/Show по группам элементов управления

Гуд. Только один момент - каждая группа имеет разное количество элементов управления. Так что:


Loop
{
    GuiControl, Hide\Show, Group_%CurGroup%_%A_Index%
         If ErrorLevel
            break
}

4

Re: AHK: GUi Hide/Show по группам элементов управления

Да верно, так правильнее.
Но можно отказаться от привязки имён переменных к индексу, занеся их в псевдомассивы, и не проверять существование:


;Первая группа 
Gui, Add, Text, x10 y10 vGroup_1_1, Какой то текст 1
Gui, Add, Edit , xp yp+20 vGroup_1_2, Какие то данные 1
 
;Вторая группа
Gui, Add, Text, x10 y10 Hidden vGroup_2_1, Какой то текст 2
Gui, Add, Edit, x10 yp+20 Hidden vGroup_2_2, Какой то текст 2
 
;3 группа
Gui, Add, Text, x10 y10 Hidden vGroup_3_1, Какой то текст 3
Gui, Add, Edit, x10 yp+20 Hidden vGroup_3_2, Какой то текст 3
 
Gui, Add, Button, x10 y50, Change

Gui, Show
CurGroup := 1, MaxGroup := 3
Group_1 = Group_1_1|Group_1_2 
Group_2 = Group_2_1|Group_2_2 
Group_3 = Group_3_1|Group_3_2  
return

ButtonChange: 
    Loop, parse, Group_%CurGroup%, |   
        GuiControl, Hide, %A_LoopField%
        
    CurGroup := CurGroup = MaxGroup ? 1 : CurGroup + 1
     
    Loop, parse, Group_%CurGroup%, |   
        GuiControl, Show, %A_LoopField%   
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: GUi Hide/Show по группам элементов управления

Как вариант это рассматривал. НО добавлять каждую ассоциативную переменную в массив при большом количестве групп и элементов неудобно, можно случайно что то пропустить, пусть уж лучше будет идти проверка существования элементов

6 (изменено: serzh82saratov, 2013-10-09 15:41:13)

Re: AHK: GUi Hide/Show по группам элементов управления

Если скрываемые элементы занимают определённую область окна, или всю, то так наверное проще:


CurGroup := 1, MaxGroup := 3 

Gui, Margin, 0, 0
Gui, Add, Tab, -Wrap vTab y-50, 1|2|3
Gui, Tab, 1
Gui, Add, Text, x10 y10, Какой то текст 1
Gui, Add, Edit , xp yp+20, Какие то данные 1
 
Gui, Tab, 2
Gui, Add, Text, x10 y10, Какой то текст 2
Gui, Add, Edit, x10 yp+20, Какой то текст 2
 
Gui, Tab, 3
Gui, Add, Text, x10 y10, Какой то текст 3
Gui, Add, Edit, x10 yp+20, Какой то текст 3

Gui, Tab 
Gui, Add, Button, x10 y60, Change

Gui, Show
return

ButtonChange:    
    GuiControl, Choose, Tab, % CurGroup := CurGroup = MaxGroup ? 1 : CurGroup + 1 
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: serzh82saratov, 2013-10-09 16:27:53)

Re: AHK: GUi Hide/Show по группам элементов управления

+ Лучше так

CurGroup := 1, MaxGroup := 3 
  
Gui, +ReSize
Gui, Margin, 0, 0
Gui, Add, Tab2, -Wrap 0x1300 vTab x-50 y-50, 1|2|3 

Gui, Tab, 1
Gui, Add, Text, x10 y10, Какой то текст 1
Gui, Add, Edit , xp yp+20, Какие то данные 1
 
Gui, Tab, 2
Gui, Add, Text, x10 y10, Какой то текст 2
Gui, Add, Edit, x10 yp+20, Какой то текст 2
 
Gui, Tab, 3
Gui, Add, Text, x10 y10, Какой то текст 3
Gui, Add, Edit, x10 yp+20, Какой то текст 3

Gui, Tab 
Gui, Add, Button, x10 y60, Change

Gui, Show 
return

ButtonChange:    
    GuiControl, Choose, Tab, % CurGroup := CurGroup = MaxGroup ? 1 : CurGroup + 1 
    return

или:

+ открыть спойлер

CurGroup := 1, MaxGroup := 3 
  
Gui, +ReSize
Gui, Margin, 0, 0
Gui, Add, Tab2, -Wrap 0x1300 vTab x-50 y-50, 1|2|3 

Gui, Tab, 1
Gui, Add, Text, x10 y10, Какой то текст 1
Gui, Add, Edit , xp y+10, Какие то данные 1
Gui, Add, Button, xp y60, Change
 
Gui, Tab, 2
Gui, Add, Text, x10 y10, Какой то текст 2
Gui, Add, Edit, xp y+10, Какой то текст 2
Gui, Add, Edit, xp y+10, Какой то текст 2
Gui, Add, Button, xp y+10, Change
 
Gui, Tab, 3
Gui, Add, Text, x10 y10, Какой то текст 3
Gui, Add, Edit, xp y+10, Какой то текст 3
Gui, Add, Edit, xp y+10, Какой то текст 3
Gui, Add, Edit, xp y+10, Какой то текст 3
Gui, Add, Button, xp y+10, Change 

Gui, Show 
return

ButtonChange:    
    GuiControl, Choose, Tab, % CurGroup := CurGroup = MaxGroup ? 1 : CurGroup + 1 
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8 (изменено: Alectric, 2013-10-09 20:46:17)

Re: AHK: GUi Hide/Show по группам элементов управления

Может проще использовать:
Gui, Tab



Минутой позже:

Упс... невнимательно читал... Это уже предложили...

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