以下のコードでは、一部の選択された行でいくつかの操作(削除ではない)を行います。前の場所に戻るときにTDbgridスクロールを回避する方法
しかし、終了すると、選択された行の上端がスクロールし、グリッドの1/2の方向に表示されることがあります。このスクロールを避ける方法はありますか? (私のコードは、以下の選択された行を横断する場合、私は訂正を歓迎し、いくつかの無関係な理由で不適当である。)
Function TForm.DoSomethingToSelectedRows;
var
KeyAtStart: Integer;
begin
Result := TRUE;
KeyAtStart := DataSet.FieldByName('Key').AsInteger;
DataSet.DisableControls;
DataSet.First;
try
while Result AND (NOT DataSet.EOF) do DataSet
begin
if DBGrid1.SelectedRows.CurrentRowSelected then
Result := ... do something ...
fMPODataTls.GetDS.Next;
end;
finally
DataSet.Locate('Key', KeyAtStart, []); // re-position where we started
DataSet.EnableControls;
end;
end;
[デルファイ - DBGridの実際の行を復元]の可能な複製(http://stackoverflow.com/questions/2995662/delph-restore-actual-row-in-dbgrid) –
ありがとう!この質問は、何が尋ねられているかについてはっきりしています。これは、他の質問の無関係の回答から明らかです。だから私はこの質問を残しておくといいと思う。 –