怎樣刪除stringgrid中選中的一行?

xianxiliu 2003-12-12 01:02:38
如題
...全文
307 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CloneCenter 2004-01-30
  • 打赏
  • 举报
回复
从后向前移动数据,并将行数减一。
yangfan369 2004-01-30
  • 打赏
  • 举报
回复
给你个思路吧:
将选中行以下所有行的下标减小,也就是说用下一行的内容覆盖上一行。ok?
zhouhaijun2 2004-01-30
  • 打赏
  • 举报
回复
procedure deleterow(i:integer;stringgrid1:Tstringgrid);
var r,c,rcount :integer;
begin
with stringgrid1 do
begin
rcount:=rowcount;
for r:=i to rcount-2 do
for c:=0 to colcount-1 do
cells[c,r]:=cells[c,r+1];
dec(rcount);
RowCount:=rcount;
end
end;
yj2k 2004-01-30
  • 打赏
  • 举报
回复
上面再上面的说的有理,正确,但我想问一下,如果判断我现在要删除某一行,比如说,我在某一行上单击鼠标左键后,如何删除单击的这行??
siwuge 2004-01-20
  • 打赏
  • 举报
回复
up
wangl 2003-12-12
  • 打赏
  • 举报
回复
你定义一个从TStringGrid类继承的新类如下:
type
TMyGrid = class(TStringgrid);

之后,删除时:你可以这样写:
TMyGrid(Grid).DeleteRow(Grid.Row); //Grid为你的StringGrid控件

说明:DeleteRow方法是TCustomGrid类申明的protected方法,可以删除表格中的一行;而TStringGrid没有将这一方法公开出来(意味着其他类将无法访问),所以你只需要定义一个从TStringGrid类继承的新类就可以了。
CHINAIMP 2003-12-12
  • 打赏
  • 举报
回复
var
i,j:integer;
iPos:integer;
begin
iPos:=StringGrid1.Row;
for i:=iPos to StringGrid1.RowCount-1 do
begin
for j:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cells[j,i]:=StringGrid1.Cells[j,i+1];
end;
StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;
xianxiliu 2003-12-12
  • 打赏
  • 举报
回复
TO: delphi_han(小强)
你這只是清空呀,沒有刪除呀,我要刪除就好了,大家幫我呀
xianxiliu 2003-12-12
  • 打赏
  • 举报
回复
RowNum
是什麼東西?怎麼以得呢?
hanzq 2003-12-12
  • 打赏
  • 举报
回复
var
i:integer;
begin
for i:=1 to stringgrid.ColCount-1 do
begin
stringgrid.Cells[i,RowNum]:='';
end;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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