. . . HI!
Mir ist gerade was komisches passiert. Wenn man auf einem Image.Canvas außerhalb des Canvas-Bereiches zeichnet, zögert die Aktualisierung von GetTickCount.
Ist ziemlich schwer zu erklären, deswegen hier einfach der Code, dann könnt ihr's selber ausprobieren:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Start, Y: Integer;
begin
Start := GetTickCount;
Y := 0;
repeat
Image1.Canvas.Ellipse(0, Y, 50, Y+50);
Y := Y - 10;
TrackBar1.Position := GetTickCount-Start;
Application.ProcessMessages;
until TrackBar1.Position = TrackBar1.Max;
end;
Auf der Form befinden sich also Image, TrackBar und Button.
Dieses Problem tritt nicht auf, wenn man statt eines Images eine PaintBox benutzt. Wenn man die Zeile
Application.ProcessMessages;
weglässt, läuft der TrackBar auch glatt.
Kennt jemand das Problem? Warum ist das so?
EDIT:
TrackBar.Min ist 0, Max ca. 3000. Y könnt ihr am Anfang auch auf nen höheren Wert setzen (500), und statt um 10 könnt ihr es auch um 1 oder so erniedrigen.