我创建了一个自TControl
继承的自定义控件,使用TPathData
创建行-它为我正在构建的图形应用程序绘制了一个自定义寻路路径。我目前已创建控件,并具有显示的路径和属性重绘。
即使我可以分配一个没有运行时错误的OnClick
事件处理程序,但可以提供基于鼠标的交互作用的继承属性(例如OnMouseDown
,OnClick
)不起作用。处理程序根本不会被调用。
我的自定义控件声明为:
TPathSegment = class (TControl)
...
具有:
public
constructor Create(ACanvas: TCanvas; AObject: TControl; listsize:int32);
destructor Destroy; override;
...
procedure Paint; override;
在调用程序中,我创建一个像这样的对象:
mypath := TPathSegment.Create(canvas,layout1,50);
mypath.HitTest := true;
mypath.Parent := layout1;
mypath.Onclick := MyPathOnClick;
mypath.pathThickness := 10;
mypath.AddSegment(PointF(100,150),TlineMove.mMT,'',TAlphaColorRec.Black
,TlineEnd.leRectangle,TAlphaColorRec.Blue,TStrokeDash.Solid);
我希望能够单击绘制的线(由TPathData
定义)并处理事件-但我不能。