Я хочу переопределить OnPaint
-Event TBCDProgressBar Component. Это компонент для Lazarus (freepascal), я пометил Delphi специально, потому что нет никаких отличий при переопределении событий, и я хочу как можно больше помочь.Override OnPaint-Event TBCDProgressBar
TBCDProgressBar
не OnPaint
событие в 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;
Мой первый подход был проследить вниз TBCDProgressBar
, пока я не нашел бы OnPaint
-Event.
Результат был:
TCDProgressBar = class(TCDControl)
TCDControl = class(TCustomControl)
TCustomControl = class(TWinControl)
И, наконец, в TCustomControl
я нашел property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
Я не понимаю, как я могу переопределить OnPaint
от TCustomControl
, так что он влияет на TBCDProgressBar
.
Edit: //
Я не знаю, что вы можете изменить его, как обычно, так вот это решение для тех, кто с той же проблемой:
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