Hallo,
entschuldige bitte, ich habe Deinen Code nicht sorgfältig genug gelesen.
Dein constructor ist nicht ganz richtig.
Du schreibst:
Delphi-Quellcode:
constructor TBlinkLabel.Create(AOwner: TComponent);
begin
inherited;
fTimer := TTimer.Create(AOwner);
fTimer.OnTimer := TimerEvent;
end;
Bei Deinem Code wird das Formular der Besitzer des Timers !!!
Damit gibt das Formular auch den Timer wieder frei.
Der Besitzer sollte aber Deine Komponente sein.
Es muss aber so lauten:
Delphi-Quellcode:
constructor TBlinkLabel.Create(AOwner: TComponent);
begin
inherited;
fTimer := TTimer.Create(Self); // Durch Self wird Deine Komponente zum Besitzer
fTimer.OnTimer := TimerEvent;
end;
Jetzt fehlt Dir noch der passende destructor.
Du musst ja den Timer wieder freigeben.
Delphi-Quellcode:
destructor TBlinkLabel.Destroy;
begin
fTimer.Free;
inherited;
end;