Zitat von
calculon:
Heißt das, wenn ich BeginUpdate und EndUpdate benutze werden alle Prozeduren, die die Listboxen beschreiben in Lichtgeschwindigkeit ausgeführt?
Ja genau.
Ich habs grad mal ausgetestet, man kommt ca. auf den Faktor 10, was das Hinzufügen der Listbox-Einträge angeht.
Wenn Du wirklich auf Benutzeraktionen reagieren willst, dann brauchst du das aber nicht bei jedem Schleifendurchlauf zu machen:
Delphi-Quellcode:
if (i mod 1000) = 0 then begin
Application.ProcessMessages;
if BtnCancel.Tag = 1 then begin // Vorrausgesetzt, dein Cancel-Button setzt das Tag auf "1" wenn gedrückt.
ListBox.Items.EndUpdate;
exit; // Schleife abbrechen
end;
end;