Keine Rückmeldung wenn Focus bei Aktiviätät geändert wird

Antworten
Schabersack
Beiträge: 7
Registriert: Mi 16. Okt 2013, 20:24

Keine Rückmeldung wenn Focus bei Aktiviätät geändert wird

Beitrag von Schabersack »

Hallo!

Ich habe ein kleines Tool geschrieben, das mit einer rekursiven Schleife über Verzeichnisse läuft, Pfadlägen ermittelt und in einer Liste einträgt.

Wenn während dem Programmlauf nun das Fenster verschoben wird, oder einfach der Focus an ein anderes Programm abgegeben wird, dann hängt sich mein Programm auf (keine Rückmeldung).

Was kann ich tun, dass die Applikation im Hintergrund ordentlich weiter läuft?

Danke für Eure Hilfe...

Gruß

Schabersack
Wer das Haus mit einem Schrim verlässt, der hat auch anrecht auf Regen!

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Keine Rückmeldung wenn Focus bei Aktiviätät geändert wir

Beitrag von Warf »

Es läuft im Hintergrund sauber weiter, selbst wenn da steht reagiert nicht. Wenn du das reagiert nicht vermeiden willst ruf alle paar iteration einfach mal Application.ProcessMessages auf (nicht zu häufig sind’s wird’s zu langsam, Min alle 2-3 Sekunden damit das reagiert nicht nicht erscheint

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Keine Rückmeldung wenn Focus bei Aktiviätät geändert wir

Beitrag von Mathias »

Ich mag mich noch erinnern an Win95 und Delphi 3, da hat so eine Schleife ohne Application.ProcessMessages, das ganze System blockiert.
Der Mauszeiger hatte sich noch bewegt, aber es hatte auf nichts mehr reagiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Schabersack
Beiträge: 7
Registriert: Mi 16. Okt 2013, 20:24

Re: Keine Rückmeldung wenn Focus bei Aktiviätät geändert wir

Beitrag von Schabersack »

Hallo!
Unhöflich - sorry dafür!
Der Tipp war Prima - so funktioniert es prächtig. Danke!
Gruß
Schabersack
Wer das Haus mit einem Schrim verlässt, der hat auch anrecht auf Regen!

Antworten