2

我正在使用一个FMX.Grid.TGrid用户可以选择完整行的。在某些情况下,我想重置此选择。如果我这样做grid.selected = -1或使用grid.selectRow(-1)选择从网格中删除但grid.selected设置为'0'(in TCustomGrid.SelectCell),这是第一行。

如何重置选择以使属性grid.selected为“-1”?

4

2 回答 2

1

我检查了 FMX 库的代码,我做了小类助手,它允许您直接访问私有属性,这些私有属性是所选行的存储值。在德尔福 XE8 上测试。即使您启用了“AlwaysShowSelection”选项,此代码也将正常工作。

  TMyG = class helper for TCustomGrid
  public
    procedure DoSomethingStrange;
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.btnReadSelectionClick(Sender: TObject);
begin
  Caption := Grid1.Selected.ToString;
end;

procedure TForm1.btnResetSelectionClick(Sender: TObject);
begin
  Grid1.DoSomethingStrange;
end;

{ TMyG }

procedure TMyG.DoSomethingStrange;
begin
  Self.FSelected := -1;
  Self.UpdateSelection;
end;
于 2015-07-21T20:31:20.027 回答
-2

如果您的目标是不在网格中显示选定的行,那么您可以通过关注另一个组件来散焦它。

于 2015-07-21T20:35:23.537 回答