想双击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;
用了下面这个程序,是在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;
参数个数或类型不正确 There is no overloaded version of 'Delete' that can be called with these arguments
我在用十字丝记录坐标的时候用的是一个按钮,如下面的程序:procedure TForm1.ActionNoteCoordinateExecute(Sender: TObject);
begin
Series2.AddXY(Rx, Ry);
end;
没有任何问题。如选错了,想消除就想双击下Tchart就好了,
这个为什么就不行呢,请教一下,那我该怎么改正呢???
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)
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
请您再次抽空指正,谢谢!!!
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;
您看看哪不对吗?