掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
customDbgrid.rowが正しく取得できない (ID:42910)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi7 type TDBG = class(TCustomDBGrid); として procedure TForm1.DBGrid1CellClick(Column: TColumn); begin TDBG(DBGrid1).Row; ShowMessage(IntToStr(Row)); end; DBGrid1 レコード数 30(スクロールしないで 初めから見えている件数は22件) カラム数 4 option [dgTitles]+[dgIndicator]+[dgColLines]+[dgRowLines]+[dgTabs]+[dgConfirmDelete]+[dgCancelOnExit]+[dgColumnResize] 上記のコードでDBGrid1のクリックしたセルのRowを取得したいのに、正しい値 が取得できない。 現状では、アプリケーションを起動して 一番初めから表示されているレコード数 (22件)分 しか正しい値で取得できない。 23件目をクリックしてもShowMessage は22を返してきてしまい、そのあと22件目をクリックする と21を返す。 つまり、22件目以上をクリックする と、そのクリックした位置を22件目とし て誤認する(単純に言えば今表示されている部分の一番下を22件目、一番上を1件目として認識してしまう) ためしにDBGrid1のHeightを広げて初め から表示される件数を24件に変えたとこ ろ、24件目を最大値として 同じ現象がおきた。 ここで取得したRowを使用してデータ ベースの更新を行っているため、Rowが ずれると予定外の場所が更新されてし まって困る。 現在以上のような問題が起きています。 22件目以降のRowも正しく取得する方法に何か心当たりのある方は、教えていただけると嬉しいです。 ちなみにDbgrid1.selectedField等はどこでも正しく取得できます。 そもそもCustomDBGrid.Rowの仕様が見 えている範囲のRowを返すものなのでしょうか? だとすれば正しいクリックしたRow位置を取得する方法を知る必要があるので、教えていただけると助かります。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.