想双击TChart,使上面十字丝选的点出去。
用了下面这个程序,是在OnDblClick里添加的,如下:
procedure TForm1.ExcludePoint(Sender: TObject);
begin
  Series2.Delete(Rx,Ry);
end;
运行后出现下面错误,请问你什么原因,怎样改正,谢谢
[Error] digitizer_main.pas(390): There is no overloaded version of 'Delete' that can be called with these arguments
PS:Rx,Ry已在前面给出,如下
procedure TForm1.ChartTool1Change(Sender: TCursorTool; x, y: Integer;
  const XValue, YValue: Double; Series: TChartSeries; ValueIndex: Integer);
begin
    Ry := Chart1.LeftAxis.CalcPosPoint(y);
    Rx := Chart1.BottomAxis.CalcPosPoint(x);
    StatusBar1.Panels[0].Text := Format('x=%d,%.4f, y=%d,%.4f',[x, Rx, y, Ry]);
end;

解决方案 »

  1.   

    Series2.Delete(Rx,Ry); 
    参数个数或类型不正确 There is no overloaded version of 'Delete' that can be called with these arguments 
      

  2.   

    非常感谢你!!!
    我在用十字丝记录坐标的时候用的是一个按钮,如下面的程序:procedure TForm1.ActionNoteCoordinateExecute(Sender: TObject);
    begin
      Series2.AddXY(Rx, Ry);
    end;
    没有任何问题。如选错了,想消除就想双击下Tchart就好了,
    这个为什么就不行呢,请教一下,那我该怎么改正呢???
      

  3.   

    Series2.Delete 有两种定义
    Delete(ValueIndex: Integer)和Delete(Start : Integer; Quantity: Integer)
    ValueIndex: 坐标点的编号值/顺序,也就是你要删除的点是Series2的第几个点
    Start : 同ValueIndex
    Quantity: 个数,从start开始连续删掉的个数两种随便选一种
    Series2.Delete(n)或Series2.Delete(n,1); //n是(Rx,Ry)的编号//Series2.Delete(0)
      

  4.   

    再次谢谢你!!!我是这么写的
    procedure TForm1.ExcludePoint(Sender: TObject);
    var
      nIndex:Integer;
    begin
      nIndex:=Series2.count-1
      Series2.Delete(nIndex,1);
    end;
    加入这条曲线上我用十字叉打算选十个点,但是我现在就选了5个点,恰恰第五个点选歪了,出错了,那此时Series2.count应该就是表示5吧,我觉得我编的没错啊,但是错误如下:
    [Error] digitizer_main.pas(393): Missing operator or semicolon
    请您再次抽空指正,谢谢!!!
      

  5.   

    还是我用来判断点的编号判断错了,给考虑简单了,直接用的就是nIndex:=Series2.count-1,请问该怎么判断,怎么编呢
      

  6.   

    你好,我已经可以编译过去了,但是实现不了功能啊,就是双击Chart那个面后,最后选错的那个点消去不了啊,不知道是什么原因。代码如下
    procedure TForm1.ExcludePoint(Sender: TObject);
    var
      i,nIndex:Integer;
      x, y: Integer;
    begin
      nIndex:=-1;
      for i:=0 to Series2.count-1 do
      begin
        if (Chart1.BottomAxis.CalcPosPoint(x)=Rx) and (Chart1.LeftAxis.CalcPosPoint(y)=Ry) then
        begin
          nIndex:=i;
          break;
        end;
      end;
      if nIndex>-1 then
        Series2.Delete(nIndex,1);
    end;
    您看看哪不对吗?