Я делаю простое приложение в 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;
Все отлично работает, когда я не использую какие-либо стили.