Einzelnen Beitrag anzeigen

palmakunkel

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

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

  Alt 22. Aug 2022, 18:25
Eine von TShape abgeleitete Metronom-Komponente, deren Visible-Status sich im Rhythmus ändert. Das soll über die Timer-Callback-Funktion erfolgen (Win-API). Diese bekommt aSender übergegen. Wenn ich in der Funktion auf TShape(aSender).Visible zugreife gibt es einen Fehler. Wahrscheinlich ist das für den Profi banal, aber ich bin Autodidakt und hier an meiner Wissensgrenze. Kann mir jemand einen Tipp geben?

type
TMetronom = class(TShape)
private
{ Private-Deklarationen }
fBlinkDuration: integer;
fEnabled: boolean;
fTimerQueue: TgoTimerQueue;
...
procedure OnTimer(const ASender: TObject);
public
constructor Create(aOwner: TComponent); override;
destructor Destroy; override;
...
published
property BlinkDuration: integer read fBlinkDuration write fBlinkDuration;
end;

implementation

constructor TMetronom.Create(AOwner: TComponent);
begin
inherited create(AOwner);
...
FTimerQueue := TgoTimerQueue.Create;
...
end;

procedure TMetronom.OnTimer(const ASender: TObject);
begin
if fEnabled then
begin
TShape(aSender).Visible:=false;
Sleep(BlinkDuration);
TShape(aSender).Visible:=true;
end;
end;
Angehängte Dateien
Dateityp: zip MetroGD3.zip (987 Bytes, 1x aufgerufen)
Gunter Dickopf
sie passten gut zueinander - geometrisch gesehen
  Mit Zitat antworten Zitat