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;