Страница 1 из 2
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:00
Игорь Столяров
Привет всем !
Есть очередной "детский вопрос" ...
Есть окно, на нем SHEET с несколькими TAB.
При открытии окна, по некоторым условиям, нужно сразу установить
какой-нибудь TAB, отличный от первого.
Сейчас это делается Select(?Tab3) - работает, но вызывает заметное
"моргание" окна при переустановке TAB ...
Вопрос: можно ли как-то иначе установить TAB по умолчанию при открытии окна ?
Заранее спасибо.

Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:29
gopstop2007
до открытия окна, у меня стоит в init после Prepare Alert Keys, вроде ничего не моргает
правда вызов немного другой SELECT(?Sheet1,loc_select_tab1)
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:30
Yufil
Ну, я бы для начала после открытия окна сказал 0{Prop:Buffer} = 1, обычно после этого моргание сильно уменьшается
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:44
Игорь Столяров
gopstop2007 писал(а): до открытия окна, у меня стоит SELECT(?Sheet1,loc_select_tab1)
Очень интересно ... А что до открытия окна разве можно обращаться к экранным полям ?!
Они вообще имеют значения ... ? Мой вариант Select(?Tab3) так точно не работает ...
Yufil писал(а): Ну, я бы для начала после открытия окна сказал 0{Prop:Buffer} = 1
Спасибо - это интересно попробовать ...
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:47
Дед Пахом
Есть OPEN(Window), и есть Event:OpenWindow. После OPEN(Window) все контролы уже созданы и проинициализированы.
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:50
Дед Пахом
2-й TAB активен:
Код: Выделить всё
PROGRAM
MAP
END
Window WINDOW('Caption'),AT(,,373,193),GRAY,FONT('Microsoft Sans Serif',8)
SHEET,AT(9,9,350,172),USE(?SHEET1)
TAB('Tab1'),USE(?TAB1)
END
TAB('Tab2'),USE(?TAB2)
END
END
END
CODE
OPEN(Window)
SELECT(?TAB2)
ACCEPT
END
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 11:55
Игорь Столяров
Дед Пахом писал(а): 2-й TAB активен:
У меня именно так сейчас и сделано. Но в окне много всего разного (Несколько LIST, куча кнопок и т.д.)
потому при таком варианте смены TAB оно заметно моргает ....
gopstop2007 писал(а): до открытия окна,
Проверил:
Код: Выделить всё
Select(?SheetW,2)
! Open the window
SELF.Open(ProgressWindow) ! Open window
Ожидаемо - не работает.

Установить TAB по умолчанию
Добавлено: 28 Март 2017, 12:11
kreator
Попробуй так (не факт, что моргать не будет):
Где-нибудь в Init оконного менеджера, ?List2 - контрол на нужном табе.
У меня используется такая конструкция, вроде жалоб не было. Но опять же не факт, может ещё что влияет.
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 12:19
gopstop2007
еще раз проверил, работает

С10 ABC
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 12:22
Ал
Игорь Столяров писал(а):
У меня именно так сейчас и сделано. Но в окне много всего разного (Несколько LIST, куча кнопок и т.д.)
потому при таком варианте смены TAB оно заметно моргает ....
те. если этот таб открывать по умолчанию первым - все ОК? так может "развести" все таб по разным окнам если столь важно чтоб "не моргало"

Установить TAB по умолчанию
Добавлено: 28 Март 2017, 12:28
kreator
gopstop2007 писал(а): еще раз проверил, работает

С10 ABC
Только Prepare Alert Keys после открытия окна.
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 13:20
Игорь Столяров
gopstop2007 писал(а): еще раз проверил, работает С10 ABC
Вы же посмотрите код, перед тем как писать ...
Embed [Prepare AlertKey] находится значительно ниже Open(Window) ....
Естественно переключение закладки оператором SELECT() в этом месте прекрасно работает.
Я в вопросе написал, что делаю переключение сразу после открытия окна.
Т.е. сообщение "до открытия окна, у меня стоит в init ..." - неправильно.
В общем, похоже современная наука это не лечит, но есть болеутоляющее ( 0{Prop:Buffer} = 1 ) ....
За наводку об этом - спасибо ! Узнал, что-то новое, попробую прикрутить.

Установить TAB по умолчанию
Добавлено: 28 Март 2017, 14:33
gopstop2007
Игорь Столяров писал(а):Т.е. сообщение "до открытия окна, у меня стоит в init ..." - неправильно.

Извините облажался, поторопился

Бес попутал с EVENT:OpenWindow
Но если поставить сразу после SELF.Open(Window) Message('?'), откроется message, а потом окно. То есть, если я правильно понял окно появляться после EVENT:OpenWindow
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 14:53
Yufil
Можно ещё спрятать окно или задвинуть за край, практически незаметно
Код: Выделить всё
hide(0) ; Select(...) ; unhide(0)
0{Prop:xpos} = 0{prop:xpos} - 5000; Select(...); 0{Prop:xpos} = 0{prop:xpos} + 5000
Установить TAB по умолчанию
Добавлено: 28 Март 2017, 15:07
Игорь Столяров
Yufil писал(а): Можно ещё спрятать окно или задвинуть за край, практически незаметно
Это уже, что-то из репертуара Дэвида Копперфильда получается ...
