Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Оптимизация   Найти похожие ветки 

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

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

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;


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

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

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;


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


 
L`Autour ©   (2007-05-04 11:35) [2]

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



Страницы: 1 вся ветка

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
11-1177948951
dss
2007-04-30 20:02
2007.11.25
TextAlign


2-1194122176
SveTTT
2007-11-03 23:36
2007.11.25
подсчет строк в DbGridEh


15-1193139603
oldman
2007-10-23 15:40
2007.11.25
MTV RUS позорит страну (оффтоп, но все таки)!


15-1193344929
Сусл
2007-10-26 00:42
2007.11.25
корпоративное решение от google


4-1179315582
Ketmar
2007-05-16 15:39
2007.11.25
как узнать, запущена ли программа как сервис, или как обычно?