OnRectangleToolClick:如何识别矩形?

时间:2017-07-14 21:36:24

标签: teechart

如果我使用OnRectangleToolClick回调,我可以获取已单击/选中的矩形的属性/属性吗?即我可以得到像矩形和颜色,透明度等文本的东西?

我希望能够显示一个编辑器(在我的代码中实现,而不是标准的tchart编辑器),用户可以在其中编辑矩形的属性。

沿着类似的路线,我希望能够识别在onDrawLinetoolDragging事件发生时选择或拖动的行。

1 个答案:

答案 0 :(得分:0)

OnClick中的TRectangleTool事件为您提供Sender参数中的工具。所以你可以这样做:

procedure TForm1.ChartTool1Click(Sender: TAnnotationTool; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (Sender is TRectangleTool) then
     with (Sender as TRectangleTool) do
     begin
       AllowDrag:=True;
     end;
end;

请注意TRectangleTool继承自TAnnotationTool

关于TDrawLineToolSender事件中的OnDragLine参数是TDrawLineTool,而不是TDrawLine数组中的TDrawLine ,因此您必须使用TDrawLine函数获取光标下方的Clicked。即:

procedure TForm1.ChartTool2DragLine(Sender: TObject);
var CursorPos: TPoint;
    ClickedLine: TDrawLine;
begin
  if (Sender is TDrawLineTool) then
     with (Sender as TDrawLineTool) do
     begin
       CursorPos:=Chart1.GetCursorPos;
       ClickedLine:=Clicked(CursorPos.X, CursorPos.Y);
     end;

  if Assigned(ClickedLine) then
     ClickedLine.Pen.Color:=clRed;
end;