有用过STRINGGRID控件的朋友:请问如何在STRINGGRID中删除任意一行的数据?(50分)

  • 主题发起人 主题发起人 Sdelphi_fu
  • 开始时间 开始时间
S

Sdelphi_fu

Unregistered / Unconfirmed
GUEST, unregistred user!
如题:
请问如何在STRINGGRID中删除任意一行的数据?
 
StringGrid是无法删除一行的.
要达到删除一行的效果,可以从要删除的行开始把后面一行内容复制到上一行,最后减小行数.
 
楼上的正解,以前我做过,就是这样了。
 
procedure fdeleteRec(var Str_Grid: tadvstringgrid;
var newrow,
Get_row: integer;
select_row: integer);
var i,j:integer;
begin
Get_row:=Str_Grid.RowCount-1;
for i:=0 to 35do
begin
Str_Grid.Cells[i,select_row]:='';
//***删除被选行***//
for j:=select_row to Get_rowdo
if (j+1)<=(Get_row) then
begin
Str_Grid.Cells[i,j]:=Str_Grid.Cells[i,j+1];
//***叠加 ****//
Str_Grid.Cells[i,j+1]:='';
end;
end;

Get_row:=Get_row-1;
//**更新行总数、当前行**//
if Get_row<=0 then
begin
Str_Grid.RowCount:=2;
Get_row:=1;
End
else
Str_Grid.RowCount:=Get_row+1;
If Get_Row>1 then
newrow:=Get_row
else
If Get_Row<=1 then
Newrow:=Get_Row;
if (Get_row>=1)and(Str_Grid.Cells[1,1]<>'') then
//**重新排列编号**//
for i:=1 to Get_rowdo
Str_Grid.Cells[0,i]:=inttostr(i);
end;
 
对,是上面的方法.
 
后退
顶部