Registriert seit: 3. Dez 2005
Ort: Coswig
18 Beiträge
Delphi 11 Alexandria
|
AW: Visible-Status von TShape in Timer-Callback Funktion ändern
23. Aug 2022, 17:47
wenn in OnTimer ein Funktionsaufruf zum Umfärben der Canvas steht klappt es, wenn ich dort direkt Canvas.FillRect() aufrufe, gibt es Speicherfehler.
Die Sleep-Funktion ist sicher nicht die hohe Schule, aber da das Programm, in dem das Metronom läuft, nur Noten anzeigt, also praktisch nichts zu tun hat, stört das 50 ms-Schlafen eigentlich nicht. Wenn ich die Farbe rhythmisch wechsele mit doppelter Timer-Geschwindigkeit, sind die grau- und rot-Phasen gleich lang, so habe ich praktisch nur einen "Grau-Blitz" in einer roten Fläche.
Vielen Dank nochmal für die Tipps und die schnellen Reaktionen!
procedure TMetronom1.FillColorRed;
begin
Canvas.Brush.Color:=clRed;
Canvas.FillRect(ClientRect);
end;
procedure TMetronom1.FillColorBtnFace;
begin
Canvas.Brush.Color:=clBtnFace;
Canvas.FillRect(ClientRect);
end;
procedure TMetronom1.OnTimer(const ASender: TObject);
begin
FillColorBtnFace;
Sleep(BlinkDuration);
FillColorRed;
end;
Gunter Dickopf sie passten gut zueinander - geometrisch gesehen
|