Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#8

Re: function/procedure pausieren verhindern

  Alt 11. Jun 2007, 01:32
Zitat von calculon:
Das ist zwar in der Tat unkompliziert, aber auch nicht das was ich brauche, da wenn ich die ProcessMessages nicht ausführe das Programm nicht gecanceled werden kann.
Wenn Du die gesamte For-Schleife mit einem BeginUpdate/EndUpdate versiehst, sollte das Füllen der Listbox so schnell gehen, dass du kein Cancel benötigst:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  with listbox1.Items do begin
    BeginUpdate;
    for i := 0 to 1000000 do
      Add(inttostr(i));
    EndUpdate;
  end;
end;
Normalerweise wird die Listbox nach jedem Add() neu gezeichnet und das dauert. Mit dem BeginUpdate/EndUpdate wird der Listbox signalisiert, dass nun an der Liste umfangreiche Änderungen vorgenommen werden und ausnahmsweise mal nicht alles neu gezeichnet werden muss. Achtung: niemals das EndUpdate vergessen.
  Mit Zitat antworten Zitat