Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оптимизация


Даддитс ©   (2007-05-03 20:03:00) 

У меня в программе используется такой фрагмент:

with ListView^ do
 for i:= 0 to 7 do
 begin
  S:= LVItems[LVCurItem - 1, i];
  LVItems[LVCurItem - 1, i]:= LVItems[LVCurItem, i];
  LVItems[LVCurItem, i]:= S;
 end;
end;


Вычитал в книге у Фленова, что в таком случае Делфи с каждым проходом цикла каждый раз обращается к ListView, чтобы определить LVCurItem, тем самым замедляя работу. Это правда? Может быть, стоит переписать примерно так:

with Films^ do
begin
 j:= LVCurItem;
 for i:= 1 to 4 do
 begin
  S:= LVItems[j - 1, i];
  LVItems[j - 1, i]:= LVItems[j, i];
  LVItems[j, i]:= S;
 end;
end;


L`Autour   (2007-05-04 11:35:00) [1]

Ставь току останова, запусти программу и просматривай данный участок кода в скомпилированном виде через окно отладки CPU (Ctrl+Alt+C)


Даддитс   (2007-05-03 20:05:00) [2]

т.е. переписать примерно так:

with Films^ do
begin
j:= LVCurItem;
for i:= 0 to 7 do
begin
 S:= LVItems[j - 1, i];
 LVItems[j - 1, i]:= LVItems[j, i];
 LVItems[j, i]:= S;
end;
end;


Плохо что в форуме нельзя отредактировать написанное сообщение ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо