Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#6

AW: Befehl immer wieder ausführen ohne CPU belastung

  Alt 29. Jun 2010, 15:37
if Sender = Button2 then Der Sender kann sich niemals einfach so innerhalb des Funktionsaufrufs verändern.
Wenn der Timer weiterläuft, dann wird über Application.ProcessMessages
immer wieder eine neue "Instanz" von Timer1Timer gestartet, welche niemals enden wird (Endlosschleife)

Da aber immer mehr Prozeduren gesartet werden, wird dieses Unweigerlich irgendwann in einem Stacküberlauf enden müssen.

Wozu überhaupt diese Schleife?
Delphi-Quellcode:
procedure TForm5.Timer1Timer(Sender: TObject);
var
    fHandle: HWND;
begin
    fHandle := FindWindow('notepad', nil);
    if (fHandle <> 0) and (GetForeGroundWindow <> fHandle) then
        SetForeGroundWindow(fHandle);
end;
Timer1.Intervall auf 50 eingestellt und du hast das selbe Ergebnis, aber ohne das Stackproblem.

PS: Warum ein rießiger Integer i, wo dieser doch nur wie ein Boolean verwendet wird?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Jun 2010 um 15:42 Uhr)
  Mit Zitat antworten Zitat