Hi Olli:
Schau:
<In irgendeinem Thread, z.B. nach Empfang einer
TCP-Message>
Delphi-Quellcode:
Procedure TSomeWhere.OnTCPMessageReceived;
Begin
PleaseUpdateGrid := True
End;
<Im Application.OnIdle>
Delphi-Quellcode:
Procedure TMainForm.ApplicationIdle (Sender : TObject; Var Done : Boolean);
Begin
If PleaseUpdateGrid then Begin
ViewController.UpdateGrid;
PleaseUpdateGrid := False;
End
End;
...
Procedure TViewController.UpdateGrid;
Begin
...
MyGrid.Invalidate
...
End;
Das geht natürlich so nicht mehr, weil Invalidate aufgerufen wird und danach nix mehr kommt. Das Grid-Neuzeichnen wird dann erst nach dem Bewegen der Maus/Keyboard etc. initiiert.
Meine Frage richtete sich aber eher danach, wie (und ob) ich Windows 'zwingen' kann, ein nicht fokusiertes Fenster im Hintergrund auch ofters mal neu zu zeichnen...