Je souhaite remplacer le OnPaint
-Event du TBCDProgressBar Component. C'est un composant pour Lazarus (freepascal), j'ai tagué Delphi volontairement car il n'y a pas de différences lors de la redéfinition des évènements, et je veux autant d'aide que possible.Remplacer OnPaint-Événement TBCDProgressBar
TBCDProgressBar
n'a pas l'événement OnPaint
dans son decleration:
TBCDProgressBar = class(TCDProgressBar)
private
FBCThemeManager: TBCThemeManager;
procedure SetFBCThemeManager(AValue: TBCThemeManager);
public
constructor Create(AOwner: TComponent); override;
published
property ThemeManager: TBCThemeManager read FBCThemeManager write SetFBCThemeManager;
end;
Ma première approche a consisté à tracer vers le bas TBCDProgressBar
jusqu'à ce que je trouverais le OnPaint
-Event.
résultat a été:
TCDProgressBar = class(TCDControl)
TCDControl = class(TCustomControl)
TCustomControl = class(TWinControl)
Et enfin TCustomControl
j'ai trouvé property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
Je ne comprends pas comment je peux passer outre OnPaint
de TCustomControl
de sorte qu'il affecte le TBCDProgressBar
.
Edit: //
Je ne savais pas que vous pouvez l'ignorer comme d'habitude, alors voici la solution pour tous ceux ayant le même problème:
TBCDProgressBarWithOnPaint = class(TBCDProgressBar)
protected
procedure Paint; override;
end;
procedure TBCDProgressBarWithOnPaint.Paint;
begin
inherited;
// drawing a line on Progressbar
Canvas.Pen.Color:=clRed;
Canvas.Line(200,0,200,20);
end;
J'aurais dû essayer. Merci beaucoup! – Lyan