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

xianxiliu 2003-12-12 01:02:38
如題
...全文
258 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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;
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5074

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
申请成为版主
帖子事件
创建了帖子
2003-12-12 01:02
社区公告
暂无公告