Teechart如何删除图表上先前添加的文本?

问题描述

我正在使用以下代码向图表添加文本:

 with form1.Chart1.Tools.Add(TRectangletool) as TRectangletool do
  begin
    Text:='THIS A TEXT';
    Shape.Angle:=0;
    Shape.Transparency:=0;
    Shape.Pen.Hide;
    Shape.AutoSize:=True;
    Shape.Color := Talphacolorrec.null;
    Shape.Font.Name:='Segoe UI';
    Shape.Font.Size := 14;
    Shape.Font.Color := Talphacolorrec.red;
    AllowDrag:=False;
    AllowResize:=False;
    Left:= 4;
    Top:= 0;
   
  end;

代码工作正常。但是,稍后我必须将其从图表中删除

有什么建议吗?预先感谢。

解决方法

我建议您尝试一下:

<a-box position="0 0.5 -1"></a-box> <!-- Clickable button on cardboard-->
<a-camera postion="0 1.6 0"></a-camera>

您必须在表单类中声明FRectTool:

procedure TForm1.Button1Click(Sender: TObject);
begin
  FRectTool := Chart1.Tools.Add(TRectangleTool) as TRectangleTool;
  with FRectTool do begin
    Text:='THIS A TEXT';
    Shape.Angle:=0;
    Shape.Transparency:=0;
    Shape.Pen.Hide;
    Shape.AutoSize:=True;
    Shape.Color := Talphacolorrec.null;
    Shape.Font.Name:='Segoe UI';
    Shape.Font.Size := 14;
    Shape.Font.Color := Talphacolorrec.red;
    AllowDrag:=False;
    AllowResize:=False;
    Left:= 4;
    Top:= 0;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
    Index : Integer;
begin
    Index := Chart1.Tools.IndexOf(FRectTool);
    Chart1.Tools.Delete(Index);
    FreeAndNil(FRectTool);  // Not sure it must be called
end;

顺便说一句:我无法自己尝试,因为我没有TeeChart Pro。发表评论以告知其是否有效。如果它不起作用,请发布您得到的错误。

,
Var
myrectangle :  array[0..2] of TrectangleTool;
indexrectangle :  array[0..2] of integer;
i,j : integer;

//delete previous Trectangletools
for i := 0 to form1.Chart1.Tools.Count-1 do
    If form1.Chart1.Tools[i] is  TRectangleTool then form1.Chart1.Tools[i].destroy;

//adding two Trectangletools
form1.Chart1.Tools.Add(TRectangleTool);
form1.Chart1.Tools.Add(TRectangleTool);

   j:= -1;

    for i := 0 to form1.Chart1.Tools.Count-1 do
    If form1.Chart1.Tools[i] is  TRectangleTool then
        begin
        inc(j);
        indexRectangle[j] := i;
        myrectangle[i] := form1.Chart1.Tools.Items[i] as TRectangleTool;
        end;

//Defining  the two new Trectangletools
with myrectangle[indexRectangle[0]] do
      begin
        Text :=' 1 this is a text 1';
        Shape.Angle:=0;
        Shape.Transparency:=0;
        Shape.Pen.Hide;
        Shape.AutoSize:=True;
        Shape.Color := Talphacolorrec.null;
       // Shape.Font.Style:=[fsBold];
        Shape.Font.Name:='Segoe UI';
        Shape.Font.Size := 14;
        Shape.Font.Color := Talphacolorrec.Blue;
        AllowDrag:=False;
        AllowResize:=False;
        Left:= 4;
        //Chart1.ChartRect.Left-5;
        Top:= 0;
        //Chart1.ChartRect.Bottom-40;
      end;

      with myrectangle[indexRectangle[1]] do
      begin
        Text :='2 this is a text 2';
        Shape.Angle:=0;
        Shape.Transparency:=0;
        Shape.Pen.Hide;
        Shape.AutoSize:=True;
        Shape.Color := Talphacolorrec.null;
       // Shape.Font.Style:=[fsBold];
        Shape.Font.Name:='Segoe UI';
        Shape.Font.Size := 14;
        Shape.Font.Color := Talphacolorrec.red;
        AllowDrag:=False;
        AllowResize:=False;
        Left:= 200;
        Top:= 0;
       
      end;
,
 for I := 1 to form1.Chart1.Tools.Count do form1.Chart1.Tools.Delete(0);

我发现这是删除图表上所有工具的最佳方法。

我们必须考虑到每次删除工具时,计数值都会下降一个单位。

因此,我们删除位置0的次数是删除所有工具所需的次数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...