firemonkey中的自定义网格

时间:2013-01-15 12:56:44

标签: delphi firemonkey delphi-xe3

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

我需要一个带有组合框单元格的列以及每个单元格中有多个复选框的列。

2 个答案:

答案 0 :(得分:3)

查看我的帖子http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns,其中介绍了FireMonkey网格的基础知识以及如何创建自定义列。

这是另一篇使用泛型为任何组件类创建列的帖子http://monkeystyler.com/blog/entry/a-firemonkey-grid-column-for-any-control

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

答案 1 :(得分:0)

任何覆盖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;