2017-07-14 47 views
-2

如果我使用OnRectangleToolClick回调,我可以获取已被点击/选择的矩形的属性/属性吗?即我可以得到像矩形和颜色,透明度等文字?OnRectangleToolClick:如何识别矩形?

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

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

回答

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; 

注意从TAnnotationToolTRectangleTool继承。


关于TDrawLineTool,在OnDragLine事件Sender参数是TDrawLineTool,不是TDrawLine阵列中的TDrawLine,所以你必须要得到光标下方TDrawLineClicked功能。即:

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;