Delphi: автоматическая прокрутка для String Grid - PullRequest
2 голосов
/ 20 июля 2011

как сделать автоматическую прокрутку для сетки строк?

Свойство «Row» или «TopRow» не помогает, если String Grid невидим (например, в скрытом фрейме): ячейки не выбраны. Если показать это - ячейка становится выделенной и работает «Row» / «TopRow».

Try. Во время проектирования. Строковая сетка: 100 строк, видимая: = ложь. При нажатии кнопки: StringGrid1.Row: = 99; StringGrid1.Visible: = true. И верните «видимый» в true для String Grid. Пожалуйста, посмотрите разницу.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Вызовите HandleNeeded перед установкой row, если строковая сетка никогда не отображалась ранее:

StringGrid1.HandleNeeded;
StringGrid1.Row := 99;

// later
StringGrid1.Visible := True;


Первоначально невидимое окно с сеткой строк еще не было создано. Установка row устанавливает свойство, но не может прокручивать несуществующее окно.

0 голосов
/ 20 июля 2011

Когда я пытаюсь использовать следующий код, кажется, он работает одинаково во всех трех случаях: видимый, невидимый и невидимый родитель:

  StringGrid1.TopRow := 5;
  showmessage(inttostr(StringGrid1.TopRow)); //shows 5
  StringGrid1.Visible := false;
  StringGrid1.TopRow := 2;
  showmessage(inttostr(StringGrid1.TopRow)); //shows 2
  StringGrid1.Parent.Visible := false;
  StringGrid1.TopRow := 1;
  showmessage(inttostr(StringGrid1.TopRow)); //shows 1

Это то, что вы имеете в виду?

...