如果我使用OnRectangleToolClick回调,我可以获取已单击/选中的矩形的属性/属性吗?即我可以得到像矩形和颜色,透明度等文本的东西?
我希望能够显示一个编辑器(在我的代码中实现,而不是标准的tchart编辑器),用户可以在其中编辑矩形的属性。
沿着类似的路线,我希望能够识别在onDrawLinetoolDragging事件发生时选择或拖动的行。
答案 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
。
关于TDrawLineTool
,Sender
事件中的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;