![]() |
![]() ![]() ![]() ![]() |
|
Определить номер строки в TDBGridDelphi , Компоненты и Классы , TDBGridОпределить номер строки в TDBGrid
Оформил: DeeCo
{
I did not found property to know the rownumber of a TDBGrid,
so I will try this in the OnDrawColumnCell of a DBGrid:
}
procedure TformX.DBGridXDrawColumnCell(Sender: TObject; const
Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
RowNo : Integer;
begin
RowNo := Rect.Bottom div TStringGrid(DBGridX).DefaultRowHeight
//so, RowNo has the Row to be draw in the moment
...
end;
Here's the translation of the content into Russian: Код для определения номера строки в компоненте TDBGrid Delphi. Автор DeeCo не смог найти встроенную свойство, которое предоставляет эту информацию, и вместо этого реализовал ее вручную с помощью события OnDrawColumnCell. Работает следующим образом:
Эта APPROACH работает потому, что каждая строка в grid имеет конкретную высоту (определенную свойством DefaultRowHeight), и разделив дно прямоугольника на эту величину, можно определить, какой строке сейчас рисуется. Вот улучшенная версия кода с дополнительными комментариями и предложениями:
Альтернативное решение: Если вам нужно только знать текущий номер строки для каких-то конкретных целей, вы можете рассмотреть другой подход. Например, если вы пытаетесь настроить внешний вид каждой строки, вы можете использовать событие OnDrawColumnCell и рассчитать номер строки вручную, как показано выше. Однако, если вам нужно доступ или манипуляцию данными в grid на основе текущего номера строки, вам может быть полезно использовать отдельную переменную или свойство, которое отслеживает текущую строку. Этот подход может быть более эффективным и легче поддерживать, чем рассчитывать номер строки каждый раз, когда событие OnDrawColumnCell тригерируется. Вот пример:
В этом примере FCurrentRowNo - это приватная переменная, которая отслеживает текущий номер строки. Вы можете обновлять эту переменную всякий раз, когда вам нужно знать текущий номер строки, и затем использовать ее в вашем коде, как вам нужно. Определить номер строки в TDBGrid можно с помощью свойства RowNo в процедуре OnDrawColumnCell, где RowNo является целым числом, равным количеству строк, отсчитываемому начиная от верхней части ячейки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||