1

Тема: AHK: Tab и Tab3

Есть несколько Tab вкладок, так же есть несколько кнопок которые необходимо отображать поверх этих вкладок. При использовании обычного Tab всё нормально, а вот с Tab3 происходит нечто не понятное. Кнопки появляются только когда на них наводишь. Так должно быть?

Gui, Add, Button, Default x20 y50 w100, ok
Gui, Add, Button, x150 y50 w100, Cancel
Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Gui, Show

2

Re: AHK: Tab и Tab3

Из вашего кода непонятно, какой вкладке должны принадлежать кнопки. Вы создаёте сначала их, а потом перекрывающий их контрол Tab. Какого поведения вы ожидаете?

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

3

Re: AHK: Tab и Tab3

Ни к какой, кнопки должны быть поверх вкладок. Я ожидаю видеть кнопки всегда, сами посмотрите как это выглядит с Tab.

4

Re: AHK: Tab и Tab3

Да, действительно,  с Tab выводятся поверх, также и с Tab2. По идее, это ненормальное поведение, видимые контролы не должны перекрывать друг друга. Используйте Tab2, или добавьте кнопки на каждую вкладку, что логичнее.

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

5

Re: AHK: Tab и Tab3

Ну, или просто ниже всех вкладок.

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

6

Re: AHK: Tab и Tab3

Ну тогда проще Tab2 использовать, т.к. я особой разницы не вижу между ними, а добавлять для двух десятков вкладок свои кнопки, ну...

7

Re: AHK: Tab и Tab3

Вот так у меня вышло:

Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Gui, Tab
Gui, Add, Button, Default x20 y50 w100, ok
Gui, Add, Button, x150 y50 w100, Cancel
Gui, Show
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

8

Re: AHK: Tab и Tab3

Заметил ещё одну странность. Те кнопки в вашем коде не активны, и не переходят к метки. Вот код для примера.

Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Gui, Tab
Gui, Add, Button, Default x20 y50 w100, ok
Gui, Add, Button, x150 y50 w100, Cancel
Gui, Tab, 1
Gui, Add, Button, Default x80 y100 w100, Test
Gui, Show
Return

ButtonOk:
ButtonCansel:
	MsgBox Test 1
Return
ButtonTest:
	MsgBox Test 2
Return

9

Re: AHK: Tab и Tab3

Да, они даже на наведение мыши не реагируют. Значит, для вас Tab3 не подойдёт.

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

10

Re: AHK: Tab и Tab3

Ну, или как я выше предлагал:

Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Loop 3 {
   Gui, Tab, %A_Index%
   Gui, Add, Button, Default x20 y50 w100, ok
   Gui, Add, Button, x150 y50 w100, Cancel
}
Gui, Tab, 1
Gui, Add, Button, Default x80 y100 w100, Test
Gui, Show
Return

ButtonOk:
ButtonCancel:
	MsgBox Test 1
Return
ButtonTest:
	MsgBox Test 2
Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

11

Re: AHK: Tab и Tab3

Спасибо.
Я правильно понимаю, цикл просто обновляет кнопки для каждой вкладки?

12

Re: AHK: Tab и Tab3

Нет, цикл добавляет кнопки на каждую вкладку, просто циклом запись более компактная.

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

13

Re: AHK: Tab и Tab3

Мне уже не по себе от этого вопроса, можно было просто использовать Tab или Tab2, и не умчать вас. В общем ещё проблема.
Если использовать ссылку на GuiControl, то выводится ошибка об использовании нескольких контролов.

Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Loop 3 {
   Gui, Tab, %A_Index%
   Gui, Add, Button, Default x20 y50 w100 vnew1, ok
   Gui, Add, Button, x150 y50 w100 vnew2, Cancel
}
Gui, Tab, 1
Gui, Add, Button, Default x80 y100 w100, Test
Gui, Show
GuiControl,, new1, ОК
GuiControl,, new2, Отмена
Return

ButtonOk:
ButtonCancel:
	MsgBox Test 1
Return
ButtonTest:
	MsgBox Test 2
Return

14

Re: AHK: Tab и Tab3

Ну правильно, несколько контролов в одном окне нельзя называть одинаково. А зачем вам давать им имена, можно ведь ориентироваться на OK и Cancel.

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

15

Re: AHK: Tab и Tab3

Мелочный я, да и как-то русские буквы милей

16

Re: AHK: Tab и Tab3

Можно, например, так:

Gui, Add, Tab3, x10 y10 w250 h120 , 1|2|3
Loop 3 {
   Gui, Tab, %A_Index%
   Gui, Add, Button, % "x20 y50 w100 vnew" A_Index * 2 - 1, ok
   Gui, Add, Button, % "x150 y50 w100 vnew" A_Index * 2, Cancel
}
Gui, Tab, 1
Gui, Add, Button, Default x80 y100 w100, Test
Gui, Show
GuiControl,, new1, ОК
GuiControl,, new2, Отмена
Return

ButtonOk:
ButtonCancel:
	MsgBox Test 1
Return
ButtonTest:
	MsgBox Test 2
Return

Тогда у кнопок ok будут имена new1, new3, и new5, а у кнопок Cancel new2, new4, и new6.

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

17 (изменено: -Sema-, 2019-05-17 10:43:29)

Re: AHK: Tab и Tab3

Если так -


   Gui, Add, Button, Default x20 y50 w100 vnew1%A_Index%, ok
   Gui, Add, Button, x150 y50 w100 vnew2%A_Index%, Cancel

то каждой переменной добавится индекс вкладки.

Со своей проблемой - разобрался сам. Оказалось записи, к примеру -

Zad_Lich:
Gui, Submit, NoHide
MsgBox, %Numb_Tab%
Return
Zad_Lich:
Gui, Submit, NoHide
MsgBox, %Tab%
Return

иногда интерпретируются одинаково.
Переменная Tab тогда равна номеру вкладки с которой был вызов подпрограммы
(но только если использовать - Gui, Submit).
Однако, при таком варианте -

Zad_Lich:
Gui, Submit, NoHide
MsgBox, %Numb_Tab%`n%A_GuiControl%
Return

переменная Numb_Tab будет пустая.

Я вообще не знал о такой переменной - Tab.

18 (изменено: belyankin12, 2019-05-17 10:39:59)

Re: AHK: Tab и Tab3

Gui, Main: Add, Button, x2 y560 w100 h40 gCancel, Отмена
Gui, Main: Add, Button, x492 y600 w70 h30 gVersion, О программе
Gui, Main: Add, Button, x122 y560 w110 h40 gHelp, Помощь
Gui, Main: Add, Button, x572 y560 w190 h70 gSave, Сохранить
Gui, Main: Add, Button, x492 y560 w70 h30 gRemove, Сброс параметров
Gui, Main: Add, Tab, x2 y70 w810 h490 , Основные бинды|Пользовательский биндер|Биндерботство|Команды|Overlay|Настройки
Gui, Main: Tab, Основные бинды

Это пример с одной из моих программ. Вышеописанные кнопки всегда видны и всегда работают, ещё ни разу ничего не ломалось. Или кнопки должны находится поверх области tab'a? Не разумнее будет урезать область tab'a в таком случае для универсальных кнопок?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

19

Re: AHK: Tab и Tab3

Лучше тогда использовать -

Gui, Tab ; Добавленные элементы управления появятся вне вкладок.