Как получить номер строки в событии OnDrawColumnCell?

Вот как выглядит моя процедура рисования для компонента TDBGrid. Я заменяю значения из базы данных на основе некоторых правил:

void __fastcall TForm_Loadpoint_Details::DBGrid1DrawColumnCell(
  TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column,
  TGridDrawState State)
{
    int row_index = ???;
    AnsiString text = GetCustomizedText(row_index, DataCol);
    DrawText(text);
}

Однако я не знаю, как определить, какая строка отображается в данный момент? Без этих знаний я не могу получить данные для отображения.


person truthseeker    schedule 19.12.2011    source источник


Ответы (1)


Вы можете использовать свойство Index или FieldNo объекта Column->Field, или вы можете использовать класс доступа для доступа к защищенному свойству TDBGrid::DataLink, а затем использовать его свойство ActiveRecord.

person Remy Lebeau    schedule 20.12.2011
comment
Первые два варианта дают противоречивые результаты для меня (Index=1,FieldNo=3), но третий вариант (TDBGrid::DataLink->ActiveRecord) кажется нормальным. - person truthseeker; 20.12.2011