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;
注意从TAnnotationTool
的TRectangleTool
继承。
关于TDrawLineTool
,在OnDragLine
事件Sender
参数是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;