Delphi firemonkey中的自定义网格

Delphi firemonkey中的自定义网格,delphi,firemonkey,delphi-xe3,Delphi,Firemonkey,Delphi Xe3,我们正在将当前的vcl应用程序合并到Firemonkey。当前最大的问题是创建带有一些自定义列的tgrid 我需要一个包含组合框单元格的列,以及一个在每个单元格中包含多个复选框的列。请看我的文章,其中介绍了FireMonkey网格的基本知识以及如何创建自定义列 这是另一篇文章,它使用泛型为任何组件类创建列 使用第二种方法,使用多个复选框创建一个组件,然后创建一个使用该组件的列。请看我的文章,其中介绍了FireMonkey网格的基本知识以及如何创建自定义列 这是另一篇文章,它使用泛型为任何组件类创

我们正在将当前的vcl应用程序合并到Firemonkey。当前最大的问题是创建带有一些自定义列的tgrid

我需要一个包含组合框单元格的列,以及一个在每个单元格中包含多个复选框的列。

请看我的文章,其中介绍了FireMonkey网格的基本知识以及如何创建自定义列

这是另一篇文章,它使用泛型为任何组件类创建列

使用第二种方法,使用多个复选框创建一个组件,然后创建一个使用该组件的列。

请看我的文章,其中介绍了FireMonkey网格的基本知识以及如何创建自定义列

这是另一篇文章,它使用泛型为任何组件类创建列


使用第二种方法,使用多个复选框创建一个组件,然后创建一个使用该组件的列。

任何覆盖TColumn类的CreateCellControl方法的解决方案都不再有效。。 新的API提供了一个名为TGridModel的类,它通过OnCreateCustomEditor事件允许您动态创建网格单元的编辑组件。然而,我仍然找不到任何使用这种方法的例子

procedure TForm1.MyOnCreateCustomEditor(Sender: TObject; const Column: TColumn; var Control: TStyledControl);
var
  idx: Integer;
begin
  idx := Column.Model.IndexOfColumn(Column);
  case idx of
    // Create controls here
  end;
end;

procedure TForm1.OnCreate(Sender: TObject);
begin
  inherited;
  Grid1.Model.OnCreateCustomEditor := MyOnCreateCustomEditor;
end;

任何覆盖TColumn类的CreateCellControl方法的解决方案都不再有效。 新的API提供了一个名为TGridModel的类,它通过OnCreateCustomEditor事件允许您动态创建网格单元的编辑组件。然而,我仍然找不到任何使用这种方法的例子

procedure TForm1.MyOnCreateCustomEditor(Sender: TObject; const Column: TColumn; var Control: TStyledControl);
var
  idx: Integer;
begin
  idx := Column.Model.IndexOfColumn(Column);
  case idx of
    // Create controls here
  end;
end;

procedure TForm1.OnCreate(Sender: TObject);
begin
  inherited;
  Grid1.Model.OnCreateCustomEditor := MyOnCreateCustomEditor;
end;

遗憾的是,并不是@Jeroenwiertplaimers,我很感激地收到了关于它的任何更新投票,并将其发送到了我的博客上。你的统计数据应该上升(:这个回答没有回答这个问题,只是建议进行更多的研究。我自己尝试使用这些指南栏将TCombobox添加到TGrid中,结果导致了一个不完整的实现。遗憾的是,没有@JeroenviertPluimers,我在博客上对此表示感谢并将其发送给你。你的统计数据应该上升(:此回答没有回答问题,只是建议进行更多的研究。我自己尝试使用这些指南列将TCombobox添加到TGrid中,结果导致实现不完整。