2

私はTGrid3FMX列で、2 番目の列は ですVisible False。最初の列をクリックし、矢印を押して次の表示されている列にフォーカスすると、カーソルは 3 番目の列に移動せず、2 番目の列にフォーカスしているかのように消えます列、もう一度矢印を押すと、彼は 3 番目の列に移動します。

どうすれば修正できますか?

4

1 に答える 1

1

OnSelectCellイベントは次のように使用します。

procedure TForm7.Grid1SelectCell(Sender: TObject; const ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  if not (Sender as TGrid).Columns[ACol].Visible then
  begin
    CanSelect := False;
    if (Sender as TGrid).ColumnByIndex(ACol+1) <> nil then
      (Sender as TGrid).SelectColumn(ACol+1);
  end;
end;

ところで、使用している Delphi のバージョンについては言及していませんが、違いがあります。について質問するときはFiremonkey、常に Delphi のバージョンを質問にタグ付けしてください。ここにアップデートがあります:

  • Delphi 10.1 Berlin では、上記の修正は必要ありません。

  • Delphi 10 シアトル以前 (XE6 まで検証済み) では、修正が必要です。

また、Delphi 10 シアトル以前のバージョンでは、他の方向(右から左)での選択が修正なしで機能することにも気づいたかもしれません(これは、ACol + 1考慮するだけでよい理由を説明しています)。

于 2016-11-07T21:11:22.353 に答える