Определить номер строки в 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 является целым числом, равным количеству строк, отсчитываемому начиная от верхней части ячейки. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |