Tôi có một ứng dụng khá phức tạp và lớn tay tải và tải dữ liệu. Có cách nào nhanh chóng để thêm các mục vào ComboBox không mất quá nhiều thời gian? Trên P3 3.2ghz của tôi, đoạn mã sau chỉ mất một giây để thêm khoảng 32.000 mục. (MasterCIList là một StringList với các chuỗi thường dài 20 - 30 byte).Delphi Thêm các mục vào tốc độ ComboBox
with LookupComboBox do
begin
Items.BeginUpdate;
Items.Clear;
for i := 0 to MasterCIList.Count - 1 do
Items.Add(MasterCIList[i]);
Items.EndUpdate;
end;
Khoan xuống VCL, dường như trong TComboBoxStrings.Add, có một cuộc gọi đến Result: = SendMessage (ComboBox.Handle, CB_ADDSTRING, 0, Longint (PChar (S)));
Tôi đoán điều này thực sự đang chiếm thời gian (okay, tôi biết là vậy). Có cách nào khác để điền các mục nhanh hơn không? Có hộp combox tốc độ cao nào không? Tôi có các thành phần TMS nhưng chúng dường như là phần mở rộng của TComboBox.
Ví dụ, tôi có PlusMemo mà có vẻ là tổng số viết lại của TMemo. Tôi có thể dễ dàng thêm một triệu dòng trong một giây để một PlusMemo. Một TMemo, tôi không nghĩ vậy.
Cảm ơn bạn rất nhiều vì đã dành thời gian!
Không phải là câu trả lời, nhưng tại sao bạn muốn 32.000 mục trong hộp tổ hợp? Đó là một cách khủng khiếp để lưu trữ nhiều dữ liệu. –