Кодингу не обучен, посему ваял прогу по собственному разумению.
И естественно столкнулся с проблемой.
Имеем, прогу-оболочку к БД. 2 дочерние формы добавляющие(1 дочернее), изменяющие (2 дочернее) записи БД.
При работе с любой из этих форм, после того как внесименил необходимые данные на форме и нажал кнопку "Применить" - форма начинает мееедленно, по частям, закрываться. Как будто её кусками режут, как будто не хватет мощи компа обработать графику закрытия формы.
По кнопке "Применить" у меня сделан хаб, первое действие которого - закрыть форму, следующие действия идут на выполнение запросов к БД, выведение результата запроса в таблицу на главнй форме, очистку эдитов на закрытой дочерней форме и т.д.
Я думал что раз 1 действие по кнопке "Применить" - закрытие дочерней формы, то форма стремительно закроется а код будет выполняться уже дальше, ан нет.
Где я допустил промашку?
P.S. Одним из действи после закрытия дочерней формы (нажатием кнопки Применить на доч. форме) была установка текста на главной форме программы - количества записей БД. Однако при этом, при нажатии "Применть" на дочерней форме, прога вела себя вабще странно. Дочерняя форма так же кусками исчезала, главная форма проги уходила на задний план, на передний план вылезало окно приложения в котором я работал до этого, например тотал коммандер. Проходило 0,5-1 секунда, снова на передний план вылазило главное окно моей проги. Убрал это действие из хаба дочерней формы - теперь форма не прыгает на заднийпередний планы.
Этот топик читают: Гость
Ответов: 952
Рейтинг: 4
|
|||
карма: 0 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
user_asm писал(а): Я думал что раз 1 действие по кнопке "Применить" - закрытие дочерней формы, то форма стремительно закроется а код будет выполняться уже дальше, ан нетПерерисовка экрана работает в системной очереди сообщений, те после 1-го действия системе дается команда на закрытие формы, и не ждется выполнение конца этого закрытия, а переходит сразу ко 2-му действию, а там действия с базой, которые начинаю тормозить очередь системных сообщений, занимая системные ресурсы. Те после первого действия надо дать задержку для гарантированного закрытия формы, после чего только переходить ко 2-му действию |
|||
карма: 22 |
|
Ответов: 952
Рейтинг: 4
|
|||
Спасибо за совет. Просто таймером? На какое время? Хотя бы примерно.
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
На 0
Вопрос не во времени, а в очередности исполнения |
|||
карма: 9 |
|
Ответов: 952
Рейтинг: 4
|
|||
Понятно. Спасибо всем. А то не мог толку добиться в чем у меня промашка.
|
|||
карма: 0 |
|
Ответов: 952
Рейтинг: 4
|
|||
карма: 0 |
| ||
файлы: 1 | code_33770.txt [899B] [577] |
Ответов: 952
Рейтинг: 4
|
|||
Да, дочерняя форма теперь закрывается очень быстро. Вот только вопрос с уходом главного окна проги на задний план и снова появления на переднем так и не решился.
------------ Дoбавленo в 17.15: Хотя нет, и форма стала закрываться быстрее, но опять же кусками, не мгновенно. ------------ Дoбавленo в 21.59: Может в хабе после всех действий еще один таймер поставить? ... |
|||
карма: 0 |
|
Ответов: 952
Рейтинг: 4
|
|||
карма: 0 |
| ||
файлы: 1 | code_33876.txt [871B] [508] |
Ответов: 952
Рейтинг: 4
|
|||
Дочерняя форма.
Доч. форма открывается при нажатии на кнопку на главной форме. Однако я могу при открытой дочерней форме так же нажимать и вводить данные на главной фроме. А заблокировать главную форму до закрытия дочерней - можно? |
|||
карма: 0 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
user_asm писал(а): А заблокировать главную форму до закрытия дочерней - можно?Использовать на дочерней doShowModal
|
|||
карма: 22 |
|
10