请教一句话

tangyulong_520 2008-07-31 10:32:08
想双击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;
...全文
363 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangyulong_520 2008-07-31
  • 打赏
  • 举报
回复
你好,我已经可以编译过去了,但是实现不了功能啊,就是双击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;
您看看哪不对吗?
tangyulong_520 2008-07-31
  • 打赏
  • 举报
回复
还是我用来判断点的编号判断错了,给考虑简单了,直接用的就是nIndex:=Series2.count-1,请问该怎么判断,怎么编呢
tangyulong_520 2008-07-31
  • 打赏
  • 举报
回复
再次谢谢你!!!我是这么写的
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
请您再次抽空指正,谢谢!!!
coffeemay 2008-07-31
  • 打赏
  • 举报
回复
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)
tangyulong_520 2008-07-31
  • 打赏
  • 举报
回复
非常感谢你!!!
我在用十字丝记录坐标的时候用的是一个按钮,如下面的程序:procedure TForm1.ActionNoteCoordinateExecute(Sender: TObject);
begin
Series2.AddXY(Rx, Ry);
end;
没有任何问题。如选错了,想消除就想双击下Tchart就好了,
这个为什么就不行呢,请教一下,那我该怎么改正呢???
coffeemay 2008-07-31
  • 打赏
  • 举报
回复
Series2.Delete(Rx,Ry);
参数个数或类型不正确 There is no overloaded version of 'Delete' that can be called with these arguments

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧