いつも勉強させていただいてます。
さて、早速なのですが、TDBGridにてマウスでクリック時、
クリックした位置のレコードが、
先頭から何レコード目のレコードなのかを判定したいと思っています。
procedure TMyDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
CurrentRow := (Y div RowHeights[0]) - 1;
end;
Gridにスクロールがない場合は、
上記のコードで正常にCurrentRowに値が入るのですが、
DBGridを縦にスクロールしている場合、
Y座標が表示されている位置からの座標のため、
スクロールしている分だけずれてしまいます。
「現在のGridの表示状態が何レコード分スクロールしているのか(何ピクセルずれているのか)」があらかじめわかれば、
計算できるかと思ったのですが、その方法がわかりませんでした。
このような場合、何かいい方法がありますでしょうか?
レコードの一取得ですが,
データベースが Paradox なら
DBGrid1.DataSource.DataSet.RecNo
で拾えると思います。
RDBMS なら TClientDataSetを使えばRecNoプロパティで拾えると思います。
>レコードの一取得ですが
レコードの位置取得ですが
の間違いです。
ご返信いただきありがとうございます。
RDBMSでしたので、TClientDataSetのRecNoプロパティを使用することで
正常に取得することができました。
誠にありがとうございました。
ツイート | ![]() |