2017-07-14 54 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;