2011-12-19 17 views
1

これは、TDBGridコンポーネントの描画ルーチンの外観です。私はいくつかのルールに基づいて、データベースから値を置き換えています:OnDrawColumnCellイベントで行番号を取得する方法は?

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); 
} 

しかし、私はどのように現在レンダリングされている行伝えるために知っているのですか?この知識がなければ私は表示のためのデータを得ることができません。

答えて

0

あなたはColumn->FieldオブジェクトのIndexまたはFieldNoプロパティを使用するか、保護されたTDBGrid::DataLinkプロパティにアクセスして、そのActiveRecordプロパティを使用するアクセサクラスを使用することができます。

+0

最初の2つのオプションは私にとって矛盾する結果をもたらしますが(Index = 1、FieldNo = 3)、3番目のオプション(TDBGrid :: DataLink-> ActiveRecord)はOKと思われます。 – truthseeker

関連する問題