powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Tabs
11 сообщений из 11, страница 1 из 1
Tabs
    #36827968
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый !
Возможно я не вижу очевидное - прошу ткнуть пальцем в Help.
В скрипте потомка объекта Tab, для создания новых вкладок используется функция
this.opentab( ...., '.....', i_tab),
где i_tab меняется в зависимости от выводимой туда информации и заранее этот порядок выяснить нельзя.
В результате, если при создании 5 вкладок у 5-ой вкладки i_tab был указан = 1, при выделении этой вкладке this.selecttab будет иметь равен 1, сама же вкладка находится при этом в this.control[ 5 ].
Ожидал найти или свойство или функцию - как зная selecttab можно найти номер вкладки в control - но не нашел.
Конечно проблему решил, но хотелось бы найти более красивое решение.


Good Luck !
...
Рейтинг: 0 / 0
Tabs
    #36832446
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не знаю, я например при открытии загоняю их в массив в том порядке, который мне нужен
Потом можно просто работать с массивом
...
Рейтинг: 0 / 0
Tabs
    #36833990
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001Ну не знаю, я например при открытии загоняю их в массив в том порядке, который мне нужен
Потом можно просто работать с массивом
К сожалению - это не мой случай.
Я должен обработать произвольное количество XML файлов, каждый из которых может содержать информацию для нескольких вкладок. Конечно, можно вначале создать массив объектов в памяти, а потом выводить их в нужном порядке, но это менее красивое решение - могут возникнуть ( и возникали в ранних версиях ) проблемы с памятью, да и время обработки существенно выше.
Проблему я решил - добавил свойства и функции во вкладки и использую их при обработке.
Задал вопрос на форуме из-за удивления - параметр в функции opentab есть, а механизм его использования не предусмотрен.
Думал, что не внимателен и не вижу очевидного.
Спасибо за совет.

Good Luck !
...
Рейтинг: 0 / 0
Tabs
    #36834617
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChV,

Вообще-то загоняется одновременно с открытием
Код: plaintext
1.
2.
3.
tab_main.opentab( tabpg[ 1 ], 'u_tabpg1',  0 )
tab_main.opentab( tabpg[ 2 ], 'u_tabpg2',  2 )
tab_main.opentab( tabpg[ 3 ], 'u_tabpg3',  3 )
...
Рейтинг: 0 / 0
Tabs
    #36835309
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001,
Может я "туплю" и не вижу подсказки ?
Программа обрабатывает последовательно выбранный клиентом перечень XML файлов, каждый из которых содержит произвольное число документов разного типа. Каждый документ должен быть положен в соответствующую вкладку ( а в ней в тоже во вкладку, а в ней тоже ... - с произвольным уровнем вложений ) к себе подобным. По содержащейся информации определяется приоритет этих вкладок на каждом уровне вложений и количество уровней.
Где должна находиться вкладка на каждом уровне вложений становится ясно только после обработки информации каждого документа ( "в конец", "в начало", "между существующими"). Из-за достаточно большого количества файлов и их размера - всячески приходится бороться за уменьшение время их обработки.
Поэтому выйти на вариант
Код: plaintext
1.
2.
3.
tab_main.opentab( tabpg[ 1 ], 'u_tabpg1',  0 )
tab_main.opentab( tabpg[ 2 ], 'u_tabpg2',  2 )
tab_main.opentab( tabpg[ 3 ], 'u_tabpg3',  3 )
я могу только после обработки всех документов во всех файлах. Конечно, можно информацию держать в коллекции объектов, а уже потом оттуда, создавая вкладки, выводить туда информацию.
Но ведь речь идет о "красивом" решении, а это еще менее красиво, чем то, что сейчас работает.
Спасибо за желание помочь.

Good Luck !
...
Рейтинг: 0 / 0
Tabs
    #36836996
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дерево из табов, хмм... Очень интересно
Если просто вопрос в поиске соответствия, может просто использовать Tag, чтобы узнать в каком контроле все лежит
...
Рейтинг: 0 / 0
Tabs
    #36837060
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно натыкался на подобную ситуацию
пользовал такуй код:
Код: plaintext
1.
2.
i=send(handle(tab_1), 4864 + 11  /*TCM_GETCURSEL*/ , 0 , 0 )+ 1 
if i> 0  then return this.control[i]
...
Рейтинг: 0 / 0
Tabs
    #36837364
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001... может просто использовать Tag ...

Собственно подобно этому и сделано. Во вкладках свои, отличные от других, свойства, меню, функции и события обработки отображаемой информации.
spas2001Дерево из табов, хмм...

Обработка полученной информации из ЦБ. Пользователь выбирает вариант отображения информации и перечень типов выводимых документов. В одном из вариантов - верхний ряд - вкладки по датам. В каждой из них - вкладки по рейсам и то, что вне рейса. В каждой из них - вкладки по типам документов. В некоторых из них вкладки - списки документов, детальное отображение, списки документов на которые они ссылаются, их детальное отображение и т.д. и т.п
Dmitry.давно натыкался на подобную ситуацию
пользовал такуй код:
Код: plaintext
1.
2.
i=send(handle(tab_1), 4864 + 11  /*TCM_GETCURSEL*/ , 0 , 0 )+ 1 
if i> 0  then return this.control

Очень интересно. Все же решусь и задам вопрос. Уважаемый Dmitry, как ( или где ) Вы нашли ( и находите ) такой скрипт ? Хотел бы то же научиться находить такое.
Спасибо всем.

[i]Good Luck !
...
Рейтинг: 0 / 0
Tabs
    #36838640
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ПБ (кажется начиная с версии 5) используется виндовый tab control значит он подчиняется документации винды.

http://www.google.com.ua/search?q=windows+tab+control+messages

затем берем include из VC и ищем там значение для константы например TCM_GETCURSEL.

VC можно взять здесь
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP
...
Рейтинг: 0 / 0
Tabs
    #36838681
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.,
Спасибо !!!

Good Luck !
...
Рейтинг: 0 / 0
Tabs
    #36838730
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.давно натыкался на подобную ситуацию
пользовал такуй код:
Код: plaintext
1.
2.
i=send(handle(tab_1), 4864 + 11  /*TCM_GETCURSEL*/ , 0 , 0 )+ 1 
if i> 0  then return this.control

Поторопился я радоваться. К сожалению этот вариант не годится.
Если i > 0, то i равна selectedTab, а её значение, в данном случае, не равно значению в this.control
Проблему, повторяюсь, я решил, просто искал более красивое решение.

[i]Good Luck !
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Tabs
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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