如何将TGrid的'selected' 属性设置为-1
How to set 'selected' property of TGrid to -1
我正在使用 FMX.Grid.TGrid
,用户可以在其中 select 完成行。在某些情况下,我想重置此 selection。如果我使用 grid.selected = -1
或 grid.selectRow(-1)
执行此操作,则 selection 将从网格中删除,但 grid.selected
设置为“0”(在 TCustomGrid.SelectCell
中),这是第一行。
如何重置 selection 以使 属性 grid.selected
为“-1”?
我检查了 FMX 库的代码我做了一个小 class 帮助程序,它允许您直接访问私有 属性,这是所选行的存储值。在 Delphi 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;
如果您的目标是不在网格中显示所选行,那么您可以通过关注另一个组件来散焦它。
我正在使用 FMX.Grid.TGrid
,用户可以在其中 select 完成行。在某些情况下,我想重置此 selection。如果我使用 grid.selected = -1
或 grid.selectRow(-1)
执行此操作,则 selection 将从网格中删除,但 grid.selected
设置为“0”(在 TCustomGrid.SelectCell
中),这是第一行。
如何重置 selection 以使 属性 grid.selected
为“-1”?
我检查了 FMX 库的代码我做了一个小 class 帮助程序,它允许您直接访问私有 属性,这是所选行的存储值。在 Delphi 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;
如果您的目标是不在网格中显示所选行,那么您可以通过关注另一个组件来散焦它。