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;