Показать сообщение отдельно
  #2  
Старый 07.12.2012, 02:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Убрать вот это из цикла:
Код:
    Form3.Repaint;
    StringGrid2.Repaint;
2. проверить, если где у StringGrid методы BeginUpdate и EndUpdate. Если есть - использовать.
3. Грузить не из DBGrid, а из самого запроса (что ты собственно и делаешь, только обращаешься к нему через DBGrid). Мелочь, но на больших числах тоже начинает играть.
4. Где можно, использовать With..do - тоже сокращение времени на разрешение ссылок.

3 и 5 - это уже мелочевка, много тут не выиграешь.
И это только просто посмотрев на твой код. Надо еще бы по алгоритму пройтись, может можно как-то ограничить выборку.
Так что переписывать все-равно придется.

Только непонятно - чем тебя DBGrid не устраивает, что ты переписываешь данные в StringGrid. Зачем их лишний раз перекладывать?
Ответить с цитированием