Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5
  Alt 22. Apr 2003, 16:33
Hi,

ich hab mir deine eingefügten Komentare sowie deinen Link angeschaut.

Folgende Lösung:

Schreibe einen Thread in dem Du die Aktionen deines nicht modalen Überwachungsfensters steuerst (Fenster auch in diesem Thread kreieren und aufrufen).

An den entsprechenden Stellen deines Hauptprogrammes setzt du eine Abfrage über eine eigene Function für Warten (in dieser ein Sleep und Application.ProcessMessages). Mit dem Thred kannst du ein Ereignis senden, mit dem eine globale Variable deines Hauptprogrammes gesetzt wird.

Das alles so etwa nach dem Schema


Delphi-Quellcode:
Function MyWeiter: Boolean;
begin
  Result := False;
  sleep(50);
  Application.ProcessMessages;
  if not isWait then Result := True;
end;

  // laufend im Hauptprogramm

  // ab hier warten
  repeat
  until MyWeiter
  isWait := False;
  

  // und weiter zum nächsten Wartepunkt
Die Variable isWait wird durch das Ereignis des Thread für das Anzeigefenster gesetzt. So liegt das Fenster aus dem Thread heraus immer oben und der Programmablauf wird durch die Schalter gesteuert.

Gruß oki
  Mit Zitat antworten Zitat