Как я могу создать событие onclick для Delphi TPathData в моем собственном TControl? - PullRequest
1 голос
/ 15 мая 2019

Я создал собственный элемент управления, унаследованный от 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) и обработать событие - но я не могу.

...