Einzelnen Beitrag anzeigen

palmakunkel

Registriert seit: 3. Dez 2005
Ort: Coswig
13 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Visible-Status von TShape in Timer-Callback Funktion ändern

  Alt 23. Aug 2022, 16: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
  Mit Zitat antworten Zitat