我们正在将当前的 vcl 应用程序合并到 Firemonkey。当前最大的问题是创建一个带有一些自定义列的 tgrid。
我需要一个包含组合框单元格的列,以及每个单元格中包含多个复选框的列。
我们正在将当前的 vcl 应用程序合并到 Firemonkey。当前最大的问题是创建一个带有一些自定义列的 tgrid。
我需要一个包含组合框单元格的列,以及每个单元格中包含多个复选框的列。
看看我的帖子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
使用第二种方法,使用多个复选框创建一个组件,然后创建一个使用它的列。
任何覆盖 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;