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

Вниз

Эксперимент с TreeView   Найти похожие ветки 

 
F1 ©   (2002-11-20 13:48) [0]

Сделал вот такую штучку, чтоб посмотреть на быстродействие TreeView, так получается, что если много всего добавить, а потом удалить, то в целом скорость резко падает!!! ПОЧЕМУ???

С самого начала с Clear и BeginUpdate делалось 30 мс, а потом 100!!! Какого {EZ!!!

procedure TForm1.SpeedButton1Click(Sender: TObject);
Var i:Integer;
Tick:DWORD;
begin
Tick:=GetTickCount;
if CheckBox1.Checked then TreeView1.Items.BeginUpdate;
if CheckBox2.Checked then TreeView1.Items.Clear;
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
if CheckBox1.Checked then TreeView1.Items.EndUpdate;
Label1.Caption:=IntToStr(GetTickCount-Tick);
end;


 
Андрей Прокофьев ©   (2002-11-20 13:52) [1]

Может, сначала Clear чистить-то было нечего, а во второй раз надо удалить 101 узел?


 
F1 ©   (2002-11-20 13:55) [2]

>Андрей Прокофьев © (20.11.02 13:52)
Совсем за ламера считаешь :)
Нет, все при равных условиях!
Первый раз, когда Tree пустой я отбрасывал!


 
F1 ©   (2002-11-20 14:03) [3]

Короче вот такой код с каждым разом работает дольше!

procedure TForm1.SpeedButton1Click(Sender: TObject);
Var i:Integer;
Tick:DWORD;
begin
//-------------
TreeView1.Items.BeginUpdate;
for i:=0 to 1000 do
TreeView1.Items.Add(Nil, IntToStr(i));
TreeView1.Items.Clear;
//--------------
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
Label1.Caption:=IntToStr(GetTickCount-Tick);
TreeView1.Items.EndUpdate;

//Начал отсчет времени
Tick:=GetTickCount;
TreeView1.Items.BeginUpdate;
TreeView1.Items.Clear;
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
TreeView1.Items.EndUpdate;
//Вывел время
Label1.Caption:=IntToStr(GetTickCount-Tick);
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
1-4393
DBer
2002-11-22 16:01
2002.12.02
Что неправильного в этом запросе?


1-4274
сергеич
2002-11-21 10:04
2002.12.02
Компоненты


3-4263
skirdov
2002-11-12 14:47
2002.12.02
Выборка данных с SQL Server


1-4288
Назаров Евгений
2002-11-20 18:18
2002.12.02
System Tray


4-4685
zebra21
2002-10-22 23:17
2002.12.02
Просто? Как приостановить прогу до выполнения другой?