BeginUpdate & EndUpdate
Hai phương thức cực kì hữu dụng trong việc cải tiến tốc độ các controls
Hai phương thức cực kì hữu dụng trong việc cải tiến tốc độ các controls
Một số control trong delphi như TListBox, TMemo, TComboBox, ... là các danh sách gồm các mục con. Mặc định, khi một mục con được thêm vào thì chương trình sẽ thực hiện việc Repaint (vẽ lại) control đó.
Điều này sẽ làm chậm ứng dụng khi phải thêm nhiều control liên tiếp.
Để khắc phục nhược điểm trên, một số control có thêm hai method là BeginUpdate và EndUpdate. Cách sử dụng như sau.
begin
ListBox1.Items.BeginUpdate;
...
ListBox1.Items.EndUpdate;
end;
Bên trong phần ..., bạn có thể thực hiện việc thêm các mục con vào.
Sau khi thực hiện BeginUpdate, quá trình cập nhật và vẽ lại sẽ bị tạm dừng cho đến khi gặp EndUpdate. Nhờ đó, bạn có thể thêm nhiều mục con vào rất nhanh, và chỉ vẽ lại một lần sau khi EndUpdate, thay vì vẽ lại cho từng mục sẽ rất lâu.
Lưu ý: Không phải control nào cũng có BeginUpdate và EndUpdate.