powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как программно установить нужную страницу в Tab control'e ?
12 сообщений из 12, страница 1 из 1
Как программно установить нужную страницу в Tab control'e ?
    #32738220
p519446
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго {GMT} !
У меня есть Tab-control с двумя страницами. Надо при определённом условии в runtime выпонить переход на вторую страницу.
Пытаюсь делать "по науке" (т.е. по PB Help):

if <некое_условие> then
tab_mytab.SelectedTab = 2
// или через функцию: tab_mytab.SelectTab(2) -- эффект тот же
end if

Так вот, это не помогает, где бы не располагать эти команды (я перепробовал все "мыслимые" события для окна, в котором находится этот Tab: Open, Activate, Show).
Причём, когда ставишь паузу в событии Activate, то видно, что нужная мне страница установлена. Однако затем что-то там заставляет его снова делать активной страницу номер 1.

Полагаю, что копать надо в сторону TriggerEvent события SelectionChanging, но в PB-хелпе нет нормального примера (там событию надо передавать два аргумента, а как это сделать ?)

Может, кто подскажет, как правильно ?
Всем ответившим заранее большое спасибо!
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738266
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p519446У меня есть Tab-control с двумя страницами. Надо при определённом условии в runtime выпонить переход на вторую страницу.
Пытаюсь делать "по науке" (т.е. по PB Help):

if <некое_условие> then
tab_mytab.SelectedTab = 2
// или через функцию: tab_mytab.SelectTab(2) -- эффект тот же
end if

Так вот, это не помогает, где бы не располагать эти команды (я перепробовал все "мыслимые" события для окна, в котором находится этот Tab: Open, Activate, Show).
Причём, когда ставишь паузу в событии Activate, то видно, что нужная мне страница установлена. Однако затем что-то там заставляет его снова делать активной страницу номер 1.

Именно так оно у меня и работает. Ищи, что у тебя её меняет втихаря на 1.
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738417
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000Именно так оно у меня и работает. Ищи, что у тебя её меняет втихаря на 1.
Не все так просто. Похоже это зависит от версии. В PB 9 build 7171 действительно работает. В PB6 - нет.
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738468
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк Dim2000Именно так оно у меня и работает. Ищи, что у тебя её меняет втихаря на 1.
Не все так просто. Похоже это зависит от версии. В PB 9 build 7171 действительно работает. В PB6 - нет.Гм... Действительно, в PB 6.5 не работает.

2 p519446
Спасти может асинхронный вызов - смотрите сами, устроит или нет.
Код: plaintext
1.
//event open <window>
tab_1.post SelectTab( 2 )
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738567
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На 6 никакими post мне это не удалось сделать. И в отдельном событии вызывать тоже не получилось.
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738624
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркНе все так просто. Похоже это зависит от версии. В PB 9 build 7171 действительно работает. В PB6 - нет.
Ну раз спросивший не указал номер версии - значит, ему, наверное, всё равно ;)?

Кстати, у меня на 6.5.1 именно SelectTab(n) очень даже замечательно работает, хотя, может быть, и не должно .
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738748
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Попробовать вместо номера передавать ссылку на страницу
Код: plaintext
 tab_1.SelectTab(tab_1.uo_3)

2) Проверить в Tab событие SelectionChanging, где можно предотвращать передачу фокуса
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32738766
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000 Локшин МаркНе все так просто. Похоже это зависит от версии. В PB 9 build 7171 действительно работает. В PB6 - нет.
Ну раз спросивший не указал номер версии - значит, ему, наверное, всё равно ;)?

Кстати, у меня на 6.5.1 именно SelectTab(n) очень даже замечательно работает, хотя, может быть, и не должно .Pure PB без каких-либо pfc и прочих надстроек, код которых мог бы повлиять на результат, версия файла pbvm60.dll - 6.5.1.620.

Далее. Вызов функции tab_1.SelectTab(2) нажатием на кнопку замечательным образом отрабатывает, но автор топика спрашивает не об этом.

Если вызвать tab_1. SelectTab(2) из события Open, то, несмотря на то, что функция возвращает 1, результата ее работы не видно :-(

Асинхронный вызов этой функции из события Open приводит к желаемому результату.

На прочих версиях не проверял
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32740105
p519446
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, я действительно забыл указать версию:
у меня установлен PB 9.0.1 build 7236.
Уважаемый PL99!
Не могли бы Вы показать тут пару строк работающего примера, связанного с асинхр. вызовом из события Open ?
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32740360
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p519446Прошу прощения, я действительно забыл указать версию:
у меня установлен PB 9.0.1 build 7236.
Уважаемый PL99!
Не могли бы Вы показать тут пару строк работающего примера, связанного с асинхр. вызовом из события Open ? http://www.sql.ru/forum/actualthread.aspx?tid=130189#1034004
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32740375
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот примерчик
...
Рейтинг: 0 / 0
Как программно установить нужную страницу в Tab control'e ?
    #32740704
p519446
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое Вам спасибо, PL99! Всё заработало!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как программно установить нужную страницу в Tab control'e ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]