ورود

View Full Version : مشکل کاهش سرعت در زمان استفاده از ListView



مهران رسا
یک شنبه 16 مرداد 1390, 23:18 عصر
سلام

یکسری رکورد رو از بانک MySql با جدول MyIsam میخونم و داخل یک ListView درج میکنم. مشکل اینجاست که سرعت کار خیلی پایینه. مثلاً برای 1400 تا رکورد چیزی حدود 8 ثانیه طول میکشه تا اطلاعات توی ListView درج بشن.

روشم اینه :


Qry.SQL.Text := 'SELECT * FROM `students`';
Qry.Open;
LST.Items.Clear;
C := Qry.RecordCount;
if C > 0 then
begin
for i := 0 to C - 1 do
begin
Itm := LST.Items.Add;
Itm.Caption := Qry.FieldByName('Code').AsString;
Itm.SubItems.Add(Qry.FieldByName
('Name').AsString);
.
.
.
Itm.SubItems.Add(Qry.FieldByName
('N').AsString);
Qry.Next;
end;
end

راه بهتری وجود داره؟ (ضمن اینکه حتماً باید از ListView استفاده کنم).

ممنون

Felony
دوشنبه 17 مرداد 1390, 10:16 صبح
در کل سرعت ListView به دلیل ساختارش کمی پائین هست و نمیتونید کار خاصی انجام بدید ، تنها راهی که دارید این هست که دنبال یک کامپوننت ListView با سرعت بیشتر بگردید یا خودتون ListView رو بازنویسی کنی و موارد مورد نیازتون رو توش پیاده کنید ...

مهران رسا
دوشنبه 17 مرداد 1390, 11:26 صبح
حدس میزدم. نهایتاً مجبور شدم رکورد هارو به صورت 100 تا 100 تا (با وقفه 500 میلی ثانیه) و به کمک دستور Application.ProcessMessage توی Listview درج کنم.