delphi – 如何删除一个TStringGrid行?

前端之家收集整理的这篇文章主要介绍了delphi – 如何删除一个TStringGrid行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个TStringGrid,我想删除所选行.基本的东西我试过只删除最后一行.如何删除任意行?

解决方法

如果您尝试的代码删除最后一行,那么您可能只是递减RowCount属性.这确实总是在行列表的末尾进行修改.考虑到这一点,您可以编写代码以确保不再需要的行是最后一行,然后删除最后一行. (最直接的方法是移动该行,并且有一个MoveRow方法,但是它是受保护的.如果你想调用保护方法,那么你也可以只改为 call DeleteRow)

仅使用公共和已发布的成员,可以编写一个删除任意行的循环.例如,这里有一些由Scalabium Software’s FAQ on this topic启发的代码

procedure DeleteRow(Grid: TStringGrid; ARow: Integer);
var
  i: Integer;
begin
  for i := ARow to Grid.RowCount - 2 do
    Grid.Rows[i].Assign(Grid.Rows[i + 1]);
  Grid.RowCount := Grid.RowCount - 1;
end;

它将要删除的每行的内容复制到上面的行中.在循环结束时,您要删除的行已被覆盖(由其下方的行),最后一行有两个副本.然后它只是删除最后一行.

删除网格的当前行,请调用以下函数

DeleteRow(Grid,Grid.Row);

猜你在找的Delphi相关文章