![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.09.2015
Сообщений: 12
|
![]()
Доброй ночи, форумчане!
Пишу проект на 7 Delphi. На форме есть TPageControl с 3 вкладками, его Align=alClient. На первой странице имеется грид (dbGridEh), в котором можно выделить несколько записей, и они откроются на второй вкладке. На ней, в свою очередь, тоже имеется TPageControl, и для каждой открытой записи динамически формируется страница. В общем, когда я изначально сделал это, у меня при выделении многих записей происходило мелькание между страницами первого TPageControl, т.е. после открытия на второй странице объекта, открывалась опять первая, происходил переход на следующую запись датасета грида, и снова открывалась 2 вкладка. И так много раз. Мелькание это смотрится ужасно, и было бы замечательно, если бы у TPageControl был бы метод BeginUpdate и EndUpdate. Чтоб на время скакания по страницам раморозить TPageControl. Подскажите, что можно сделать в этой ситуации? |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
И мифические BeginUpdate и EndUpdate тебя не спасут, потому что нет физичеки механизма определения закончил ты выделение или нет. Рекомендую следующее: Прилепить кнопульку, которая по нажатию будет активировать новую страницу, и формировать по выделенному из грида новый контент.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.09.2015
Сообщений: 12
|
![]()
Всем большое спасибо, проблему решил правкой логики открытия объектов.
Дело в том, что у меня изначально (пока не было мультиселекта) была 1 процедура, которая и отвечала за редактирование объекта, в конце её как раз и был переход на новую вкладку. Когда я подключил мультиселект, появилась вторая процедура, которая в цикле для всех выделенных записей грида вызывает первую. И тут мне нужно было бы просто перенести строку с переходом на вкладку для редактирования из старой процедуры в новую, чтоб она не запускалась для каждого выделенного объекта, а только в самом конце, когда все они уже обработаются. А я начал изобретать какие-то костыли и, вставив в начало новой процедуры возврат на первую вкладку ужаснулся мельканию вкладок. Всё, тема закрыта. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
BeginUpdate | HTTqp | Компоненты Delphi | 8 | 02.05.2014 10:35 |
Нужен прокси, аналог UserGate | Utkin | Софт | 0 | 22.12.2012 08:40 |
Нужен компонент, аналог TChart | Мрак | Мультимедиа в Delphi | 0 | 19.12.2010 18:51 |
нужен аналог строковых функций | DOS | Общие вопросы C/C++ | 4 | 05.01.2008 00:05 |