Einzelnen Beitrag anzeigen

angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: MessageDlg modal, aber Hintergrundtätigkeit laufen lasse

  Alt 30. Okt 2009, 08:50
Hi,

ich kram den alten Thread nochmal aus

ich habe hier ein gleichartiges Problem und das einmal in einem Testprojekt weiter geprüft:

Delphi-Quellcode:
procedure TForm1.machwas;
var
  i: integer;
begin
  mmo.lines.add('Foo');
  for i := 0 to 300 do
  begin
    sleep(10);
    application.processmessages;
  end;
  mmo.lines.add('bar');
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
  if bInUse then
    Exit;

  bInUse := true;
  machwas;
  bInUse := false;
end;

procedure TForm1.btnClick(Sender: TObject);
begin
  form2.ShowModal;
end;

Wenn das Form2.Showmodal aufgerufen wird, während der TimerTimer gerade abgearbeitet wird, so wird diese Abarbeitung unterbrochen.
Der Timer wird zwar weiterhin neu aufgerufen, aber der aktuelle Timerdurchlauf wird erst nach dem Schließen des Formulars fortgesetzt. Kann man das irgendwie umgehen?

Grüße
Ansgar
  Mit Zitat antworten Zitat