|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Application.ProcessMessages уже используется, однако загрузка при этом занимает 12 сек. (с учетом того что комп у меня не слабый, 4гб оперативки)
Delphicode.org - справочник Delphi |
#17
|
|||
|
|||
Application.ProcessMessages скорее тормозит саму загрузку, т.к. обеспечивает обработку сообщений.
|
#18
|
|||
|
|||
Была ещё WinApi'шка какая-то.... Работал с richtextbox, но тут и там вроде ак tstrings в основе, поэтому должно быть тоже самое, но вот не могу вспомнить как называется.... Загружала с лёту, а вот LoadFromFile тогда, it's not good.
Улёттттттттттттт!!!! |
#19
|
|||
|
|||
Помню мне надо было загружать и обрабатывать Лог- файлики весом
от 100Мб. Я тогда изрядно попотел в поисках лучшего быстродействия. Ничего лучшего не нашел как написать пару процедур для загрузки текста вместо стандартных LoadFromFile. Если вопрос еще актуален могу порыться поискать. В среднем добился неплохой прибавки к скорости. Единственное что тебе придется потом поменять в исходниках - вместо MyListbox1.LoadFromFile(YouFileName) на [Имя функции](MyListbox1.items, YouFileName) : Integer [0 - без косяков]; |
#20
|
|||
|
|||
Как очень действенный вариант предлагаю отключить прорисовку лист боксов, мне помагало. или их можно скрывать на время загрузки. процентов 40% тормозит прорисовка
|
#21
|
||||
|
||||
Попробуй так:
Код:
var sl : TStrings; begin sl := TStringList.Create; sl.LoadFromFile('....'); ListBox1.Items.Assign(sl); Кнопка "+" - весы в правом верхнем углу сообщения... |
#22
|
|||
|
|||
Цитата:
Улёттттттттттттт!!!! |
#23
|
|||
|
|||
Цитата:
Судя по этому посту все торможит из за Application.ProcessMessages, и автор куда то пропал так что можно больше не напрягаться) Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#24
|
||||
|
||||
Ускорить значительно можно если вообще не загружать все в ListBox
загружай например в TStringList - это намного быстрее Но не делай потом загрузку из него в листбокс а работай непосредстненно и частями Как это делается можешь посмотреть на примере работы с файловой системой в c:\Program Files\Borland\Delphi7\Demos\Virtual Listview\ там показано как обрабатывать данные пакетами необходимыми для прорисовки окна |
#25
|
|||
|
|||
и все же... как добиться скорости загрузки... если файл больше 10 метров то начинается геморой с тормозами...
Код:
Application.ProcessMessages Код:
listbox1.Clear; ListBox1.Items.LoadFromFile(FName); отключение отрисовки ЛБ, тоже никакого преимущества не дает.... во всяком случае может быть на старых компах... а гемороиться с БД как то не логично... есть ли еще какие либо способы?? |
#26
|
||||
|
||||
По сути дела большая часть времени загрузки тратится на прорисовку, так что даже такой объём информации быстро загрузится, попробуй сначала загрузить например в TStringList, а потом мемо присвоить текст этого стринглиста. Если проблема всё таки в прорисовке, то загрузка будет проходить моментально.
|
#27
|
|||
|
|||
kak ni stranno.. no v MEMO gruzitsja bistree...
xotja... mojet vse je tormojinei idet iz za sortirovki polu4ennix dannix?! ))) popitka virubit otrisovku Listboxa nik4emu ne privela... poprobuu otklu4it sortirovku i pereproverit... xotja.... ne dumau... a s4itivat postro4no iz faila... tak je budet dolgovato.. |