[решено] Как узнать номер выделенной строки в DBGrid?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
jotto
новенький
Сообщения: 17
Зарегистрирован: 26.10.2010 10:44:20

[решено] Как узнать номер выделенной строки в DBGrid?

Сообщение jotto »

В Delphi так

Код: Выделить всё

TStringGrid(DBGrid1).Row

а как в Lazarus?
----
Добавил uses grids - заработало
Последний раз редактировалось jotto 06.11.2015 13:00:15, всего редактировалось 1 раз.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

jotto
Начнём с того, что DBGrid - это вовсе и не таблица, а всего лишь зримое отображение набора данных и, следовательно, там нет никаких строк вовсе. Отсюда логический вывод - нужно спросить номер строки у набора данных. Если Вы смотрите данные, к примеру, из DBF-файла, то узнать номер строки можно:

Код: Выделить всё

Dbf1.RecNo;
jotto
новенький
Сообщения: 17
Зарегистрирован: 26.10.2010 10:44:20

Сообщение jotto »

Vadim , мне номер строки в гриде нужен был для отрисовки своего контрола, про DataSet я не говорил :D
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

jotto
Так бы сразу и сказали, а то всё так таинственно. ;-)
tema
постоялец
Сообщения: 376
Зарегистрирован: 24.03.2011 19:19:27

Сообщение tema »

Код: Выделить всё

property Row: Integer read FRow write SetRow;

Есть точно в TCustomGrid. Достаточно создать класс myTDBGrid(TDBGrid) с этим свойством :-)

Добавлено спустя 7 минут 1 секунду:

Код: Выделить всё

type
  MyDBGridHack = class(TDBGrid);

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(inttostr(MyDBGridHack(DBGrid1).Row));
end;
Ответить