我正在 Delphi XE2 中制作一个简单的应用程序,它专门使用“Carbon”样式。有一个包含数千行的大型字符串网格。我有一个循环遍历这个网格的记录的过程,做一些工作,并在网格中进行一些更改。随着流程循环,当前正在处理的行被突出显示(通过设置TStringGrid.Row
)。
问题是当我将样式应用于此网格时,滚动条不会随着行的更改而改变位置。循环确实在处理每一行时正确突出显示它,但是当它接近列表末尾时,右侧的滚动条仍然一直位于顶部。
如何使网格的滚动条随之移动?
这是我如何循环的示例:
procedure TForm1.Button1Click(Sender: TObject);
var
X: Integer;
begin
FStop:= False;
for X:= 1 to Grid.RowCount - 1 do begin
if FStop then Break; //Ability to stop loop
Grid.Row:= X; //Highlight current row
DoSomeLenghyWork;
ChangeSomethingOnGrid;
Application.ProcessMessages; //Keep program responding
end;
end;
当我不使用任何样式时,一切正常。