Hi blooddog_90,
auf deine Frage, was folgender Codeschnipsel macht.
Code:
Application.ProcessMessages;
Sicher wirst du im Internet und auch hier im Forum viel darüber finden. Von mir eine kleine Zusammenfasung:
Fast alles unter Windows ist ein Fenster. Jedem Fesnter kann man Nachrichten (Message; TMessage) senden.
Ein Fenster kann nun auf solche Nachrichten reagieren und bestimmte Aktionen ausführen (minimieren, maximieren, etc.).
Diese Nachrichten werden in einer Warteschlange (Queue) gehalten.
In vielen Fällen hast du in deiner Anwendung nur einen Thread (main-Thread).
In diesem Thread wird dann auch deine Nachrichten- Warteschlange abgearbeitet.
Wenn du nun lange oder zeitaufwendige Berechnungen durchführst, hat dein Thread "keine Zeit" die Warteschlange abzuarbeiten.
Ein Beispiel:
Code:
while(true)do
begin
//TODO: Hier steht deine lange Berechnung
end;
Eigentlich ist das "nicht- abarbeiten" kein großes Problem. Unschön ist dagegen,
dass deinen Anwendung dann im Titel "Anwendung reagiert nicht" (oder ähnlich) trägt
oder du deine Anwednung nicht mehr verschieben kannst. (Diese Aktionen werden dem Fenster durch Nachrichten mitgeteilt.)
Um nun dem Fenster die Möglichkeit zu geben, doch noch an die Warteschlange zu kommen, gibt es den Befehl:
Code:
Application.ProcessMessages;
Das Thema ist eigentlich ziemlich komplex. Ich habe versucht es auf ein Minimum zu reduzieren.
Wenn dich das Thema interessiert, wirst du unter
Suchergebnis noch eine Menge finden.
Lg
Sebastian