これは、以前の質問 Delphi TStringGrid の複数選択、 Delphi 文字列グリッドに関する選択された行の決定のフォロー アップです。それは別の質問です。
オブジェクトの ONSelectCell イベント TSelectCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; var CanSelect: Boolean) を詳しく調べていました。
TStringGrid.Selection.Top,Bottom プロパティが (イベント自体の中で) 必ずしも正確ではないことに気付きました。基本的に、誰かが複数の行を選択してから 1 つの行だけに変更した場合、selection.* プロパティは更新されませんが、複数の行を選択した場合は更新されます。
ARow パラメーターは、1 つまたは複数の行が選択されているかどうかに関係なく更新されますが、これは、1 つの行のみが選択されていると判断できる場合にのみ役立ちます。
たとえば、選択された行が 1 つだけの場合は Arow パラメータを使用し、複数の行が選択されている場合は Selection.* プロパティを使用して、現在選択されている行を特定します。
もっと簡単な方法があるはずです....
ありがとうございました!