gpt4 book ai didi

delphi - 以编程方式突出显示 stringgrid 行

转载 作者:行者123 更新时间:2023-12-03 15:23:34 28 4
gpt4 key购买 nike

我在 Delphi 7 中有一个字符串网格,有 0..N 行。有一个列表框,其中包含从 0..N 开始的数字如果用户单击列表框 number 中的任何数字,则应在字符串网格上选择该行号。

所以我有这个

   MystringGrid.Col :=0;
MystringGrid.Row :=Listbox.itemindex;
MystringGrid.Selection:=TGridRect(Rect(0,1 ,1 ,1));
MystringGrid.SetFocus;

这将很好地选择网格上的行(突出显示它),但问题是如果

 listbox.itemindex=MystringGrid.rowcount;

那一次我得到了

 Grid Index out of range error 

如 grids.pas 中所示

 if (ACol < 0) or (ARow < 0) or (ACol >= ColCount) or (ARow >= RowCount) then
InvalidOp(SIndexOutOfRange)

(ARow >= RowCount) 为 true,因此错误

如何选择最后一行?

最佳答案

如果有 3 行,则调用它们

0,  1,  2.

请注意,没有名为 3 的行。

更一般地说,如果有 N 行,则调用它们

0,  1,  2, ..., N - 1.

请注意,没有名为 N 的行。

因此,您的问题已经可以在问题的第一行找到:

i [sic!] have a string grid in Delphi 7, with N rows. There is a listbox with numbers from 0..N

如果有 N 行,则列表框应包含数字 0..N-1。事实上,如果让它包含数字 0..N,那么列表框中的行数将等于 N+1,即比列表框中的行数多 1。字符串网格中的项目。

另外:我会简单地做

StringGrid1.Selection := TGridRect(Rect(0, 3, 4, 3))

选择索引为3的行,假设列数为4+1

关于delphi - 以编程方式突出显示 stringgrid 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851307/

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