Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 18:51   #1
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию Тормоза при отработке графического интерфейса

Работаю с базой по технологии ADO.
Перебираю в цикле записи таблицы и удаляю их.
Хочу чтобы отображалось в реальном времени количество строк в базе.
Делаю это вставив в цикл такую строчку:
Код:
taticText3.Caption := 'Количество записей = ' +   IntToStr(ADOTable1.RecordCount);
Но графический интерфейс не успевает видимо отрисовываться. Цифра меняется лишь в конце когда все закончилось
sergey113 вне форума Ответить с цитированием
Старый 21.03.2011, 19:20   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от sergey113 Посмотреть сообщение
Работаю с базой по технологии ADO.
Перебираю в цикле записи таблицы и удаляю их.
Хочу чтобы отображалось в реальном времени количество строк в базе.
Делаю это вставив в цикл такую строчку:
Код:
taticText3.Caption := 'Количество записей = ' +   IntToStr(ADOTable1.RecordCount);
Но графический интерфейс не успевает видимо отрисовываться. Цифра меняется лишь в конце когда все закончилось
То есть при добавлении записи или удалении программа не правильно отображает кол-во записей, так? Если так, то вот это попробуй -
if TableMain.Modified then TableMain.Post;
TableMain.Refresh;
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 21.03.2011, 20:24   #3
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

нет.. не то... просто при выполнении цикла процессор подгружается и не успевает отрисовать интерфейс программы. Мне по крайней мере так кажется. Думаю может есть какие-то методы этого избежать. Ну например пузу воткнуть после
Код:
taticText3.Caption := 'Количество записей = ' +   IntToStr(ADOTable1.RecordCount);
sergey113 вне форума Ответить с цитированием
Старый 21.03.2011, 20:56   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от sergey113 Посмотреть сообщение
нет.. не то... просто при выполнении цикла процессор подгружается и не успевает отрисовать интерфейс программы. Мне по крайней мере так кажется. Думаю может есть какие-то методы этого избежать. Ну например пузу воткнуть после
Код:
taticText3.Caption := 'Количество записей = ' +   IntToStr(ADOTable1.RecordCount);
Что то я не понял, объясни ка подробнее!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 21.03.2011, 21:09   #5
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
пузу воткнуть
Ничего это вам не даст...кроме удивления, а почему оно не работает? ))
Application.ProcessMessages используйте.
На крайний случай работайте с таймером (хотя этот метод ущербный).
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 22.03.2011, 00:06   #6
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от ByAlex Посмотреть сообщение
Что то я не понял, объясни ка подробнее!
у меня не успевает отрисоваться цифра на элементе caption
Цикл быстро шустрит и команда о смене текста caption не успевает выполнится. Аж до самого конца выполнения процедуры обработчика нажатия кнопки
sergey113 вне форума Ответить с цитированием
Старый 22.03.2011, 00:24   #7
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

вроде Application.ProcessMessages это то, что мне надо...завтра попробую
sergey113 вне форума Ответить с цитированием
Старый 22.03.2011, 17:53   #8
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от sergey113 Посмотреть сообщение
вроде Application.ProcessMessages это то, что мне надо...завтра попробую
Все, въехал, такие же проблемы раньше были! Решил использованием нитей и вот этой Application.processMessages(она на время останавливает работу проги и передает управление другим). Вот это точно поможет!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 23.03.2011, 00:34   #9
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Ну или с приоритетами потоков похимичить, ежели их несколько.

Цитата:
она на время останавливает работу проги и передает управление другим
Не совсем так, скорее проверяет, есть ли что-нибудь в очереди задач и если да, то выделяет процессорное время на их выполнение. Хотя по сути сказал то же самое ))
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 23.03.2011, 10:16   #10
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

Вчера попробовал(у меня периодически форум в отвале почему-то), устраивает... Немного тормоза присутствуют, но они не мешают моей сырой прожке для личного пользования. Спасибо всем помогавшим.
sergey113 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тормоза при работе с TcpClient и TcpServer Аватар Работа с сетью в Delphi 0 04.03.2011 10:35
Написание графического интерфейса zhuravlov Фриланс 3 04.01.2011 21:54
TCUI - библиотека графического интерфейса для J2ME igorsolkin Общие вопросы по Java, Java SE, Kotlin 37 15.12.2010 02:10
Тормоза при добавлении записей в БД MS Access Vit@L БД в Delphi 12 17.05.2010 09:03
В Image Transparen = true - тормоза при рисовании lexaltd Мультимедиа в Delphi 0 28.09.2008 16:03