gpt4 book ai didi

delphi - 如何删除 TStringGrid 行?

转载 作者:行者123 更新时间:2023-12-03 14:37:29 25 4
gpt4 key购买 nike

我有一个 TStringGrid,我想删除选定的行。我尝试过的基本操作仅删除最后一行。如何删除任意行?

最佳答案

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

仅使用公共(public)和已发布的成员,可以编写一个删除任意行的循环。例如,以下是一些受 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 - 如何删除 TStringGrid 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com