【问题标题】:Grid's TCheckColumn not working in Delphi 10.1 Berlin firemonkey applicationGrid 的 TCheckColumn 在 Delphi 10.1 Berlin firemonkey 应用程序中不起作用
【发布时间】:2016-12-14 13:13:19
【问题描述】:

我们正在将我们的应用程序从 XE6 迁移到柏林 10.1,并且我们的自定义网格样式无法正常工作。当我测试时,我回到 XE6 来查看使用 TCheckcolumn 时的默认 gridstyle 和 checkcellstyle,它工作正常。然后我去了 10.1 Berlin 并在使用 TCheckcolumn 时测试了默认的 gridstyle 和 checkcellstyle 并且它不起作用。即,除非您单击网格中的行,否则复选框不会显示......并且在它显示之后,您无法选中或取消选中它。这是一个错误还是我们在 10.1 Berlin 中需要做的其他事情?

【问题讨论】:

  • 重现的最小步骤是什么?什么是自定义网格样式?网格DefaultDrawing 是打开还是关闭?
  • 在表单上放置一个网格。右键添加项目。添加一个 TCheckColumn,并添加一个 TStringColumn。您应该立即看到复选框,但您看不到。您必须先单击一行...但即使那样,您也无法选中该框。我什至在运行时尝试使用行中的数据。这些步骤在 XE6 和 XE7 中都可以正常工作。
  • 对不起,自定义网格样式默认为“gridstyle”。如果您在网格上选择默认样式,您会发现它

标签: delphi firemonkey delphi-10.1-berlin


【解决方案1】:

XE6 FMX.Grid 和 Delphi 10.1 Berlin FMX.Grid,特别是 TCheckColumn 之间的区别在于,在 XE6 中,即使链接的 TValueEmpty,复选框也是可见的。直到 D10 西雅图,情况都是如此。在 D10.1 Berlin 中,这已更改为仅当链接的 TValueFalseTrue 时复选框才可见。如果TValueEmpty,则不会显示复选框。

在 D10.1 Berlin 中,以下测试(类似于文档示例)适用于我:

type
  TForm27 = class(TForm)
    Grid1: TGrid;
    Column1: TColumn;
    CheckColumn1: TCheckColumn;
    StringColumn1: TStringColumn;
    procedure Grid1GetValue(Sender: TObject; const ACol, ARow: Integer;
      var Value: TValue);
    procedure Grid1SetValue(Sender: TObject; const ACol, ARow: Integer;
      const Value: TValue);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    Arr: array of TValue;
  public
    { Public declarations }
  end;

implementation

procedure TForm27.FormCreate(Sender: TObject);
begin
  SetLength(Arr, Grid1.RowCount);
end;

procedure TForm27.Grid1GetValue(Sender: TObject; const ACol, ARow: Integer;
  var Value: TValue);
begin
  if ACol = 1 then
    Value := Arr[ARow];
end;

procedure TForm27.Grid1SetValue(Sender: TObject; const ACol, ARow: Integer;
  const Value: TValue);
begin
  if ACol = 1 then
   Arr[ARow] := Value.AsBoolean;
end;

在运行时它看起来像这样:

这里我访问了三行,它们显示了复选框。

为了比较XE6测试;

【讨论】:

  • 是的!谢谢解释
猜你喜欢
  • 2017-01-16
  • 2017-05-07
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
相关资源
最近更新 更多