Einzelnen Beitrag anzeigen

Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Threads und Nachrichtenschleifen

  Alt 11. Sep 2005, 17:39
Naja, wenn du in Win32 bspw. ne Schleife hast, die lang dauert, aber die Programmoberfläche noch benutzbar sein soll, dann verwendest du ja auch Application.ProcessMessages.
Delphi-Quellcode:
procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs);
begin
  MessageBox.Show('Abänt!');
end;

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var i: integer;
begin
 for i := 0 to 1000000 do
  begin
   ListBox1.Items.Add(i.ToString);
   Application.DoEvents;
  end;
end;

Das is jetz Delphi.NET-Code.

Wenn du Button1 clickst, dann werden die Zahlen in die ListBox geschrieben.
Während das noch läuft, kannst du Button2 clicken, und die MessageBox kommt trotzdem


@DGL-Luke: Naja, das is halt Win32-Code
Aber einfach das Application.ProcessMessages durch .DoEvents ersetzen, und dann müssts laufen
Julian J. Pracht
  Mit Zitat antworten Zitat