TBCDProgressBar ComponentのOnPaint
イベントをオーバーライドしたいと思います。 Lazarus(freepascal)のコンポーネントです。イベントをオーバーライドするときに違いがないので、Delphiに目的のタグを付けました。OnPaintイベントオーバーライドTBCDProgressBar
TBCDProgressBar
はそのdeclerationにはOnPaint
イベントがありません:
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;
を私の最初のアプローチは、私はOnPaint
- イベントを見つけるだろうまでTBCDProgressBar
をダウン追跡することでした。
結果は以下のとおりであった:
TCDProgressBar = class(TCDControl)
TCDControl = class(TCustomControl)
TCustomControl = class(TWinControl)
そして最後にTCustomControl
に私は私がをオーバーライドする方法を理解していないproperty OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
を見つけましたからTCustomControl
に変更され、TBCDProgressBar
に影響します。
編集://
私はここに、あなたはいつものように、それを上書きすることができます知りませんでしたが、同じ問題を持つ人のためのソリューションです:
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;
私は試してみました。どうもありがとうございます! – Lyan