delphi – 如何删除一个TStringGrid行?
发布时间:2020-12-15 04:27:03 所属栏目:大数据 来源:网络整理
导读:我有一个TStringGrid,我想删除所选行.基本的东西我试过只删除最后一行.如何删除任意行? 解决方法 如果您尝试的代码仅删除最后一行,那么您可能只是递减RowCount属性.这确实总是在行列表的末尾进行修改.考虑到这一点,您可以编写代码以确保不再需要的行是最后
我有一个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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |