矩形工具点击:如何识别矩形?



如果我使用 OnRectangleToolClick 回调,我可以获取已单击/选择的矩形的属性吗? 即我可以获得矩形上的文本和颜色、透明度等内容吗?

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

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

TRectangleTool中的OnClick事件为您提供了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


关于TDrawLineToolOnDragLine事件中的Sender参数是TDrawLineTool,而不是TDrawLine数组中的TDrawLine,所以你必须用Clicked函数获取光标下方的TDrawLine。即:

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;

相关内容

  • 没有找到相关文章

最新更新