Delphi,默认按网格分组展开
Delphi, expand grouped by grid by default
我在 Delphi 中有一个网格程序,我需要添加此 属性 以展开网格中按数据分组的所有折叠。
procedure TProjectForm.dxDBGridEventDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
inherited;
DrawHighlight(ACanvas);
TcxGridDbTableView.ViewData.Expand(True);
end;
我收到以下错误:
E2233 Property 'ViewData' inaccessible here
请提供帮助。而且我还需要删除此网格中分组数据的可折叠按钮。谢谢
您可以毫无问题地调用 cxGrid1DBTableView1.ViewData.Expand(True)
,只要您不在像您的 q 中那样的绘图事件中执行操作。但是,如果您使用下面的示例,则实际上不需要这样做。
这个很好用
procedure TDevexGroupingForm.FormCreate(Sender: TObject);
begin
cxGrid1DBTableView1.Columns[2].GroupIndex := 0; // group by the 3rd column
// NOTE: this step is only necessary if the table view has not been grouped at design-time
cxGrid1DBTableView1.DataController.Options := cxGrid1DBTableView1.DataController.Options
+ [dcoGroupsAlwaysExpanded]; // this hides the +/- buttons of the grouped nodes
cxGrid1DBTableView1.DataController.FocusedRowIndex := 0; // focuses the first group
end;
注意:这已根据@Nil 的建议进行了更新。
第一行,仅当 TableView 在设计时尚未分组时才需要设置列的 GroupIndex。
设置 FocusedRowIndex 是可选的,具体取决于您希望 TableView 最初显示的方式
所以其实+/-分组按钮的隐藏和所有顶层分组节点的展开都可以通过设置DataController选项一步实现属性包括 dcoGroupsAlwaysExpanded
选项。
顺便说一句,设置 DataController 选项以抑制 expand/collapse 按钮的绘制,源自文章 https://www.devexpress.com/Support/Center/Question/Details/Q105527/how-do-i-hide-the-expand-button-on-a-grid
我在 Delphi 中有一个网格程序,我需要添加此 属性 以展开网格中按数据分组的所有折叠。
procedure TProjectForm.dxDBGridEventDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
inherited;
DrawHighlight(ACanvas);
TcxGridDbTableView.ViewData.Expand(True);
end;
我收到以下错误:
E2233 Property 'ViewData' inaccessible here
请提供帮助。而且我还需要删除此网格中分组数据的可折叠按钮。谢谢
您可以毫无问题地调用 cxGrid1DBTableView1.ViewData.Expand(True)
,只要您不在像您的 q 中那样的绘图事件中执行操作。但是,如果您使用下面的示例,则实际上不需要这样做。
这个很好用
procedure TDevexGroupingForm.FormCreate(Sender: TObject);
begin
cxGrid1DBTableView1.Columns[2].GroupIndex := 0; // group by the 3rd column
// NOTE: this step is only necessary if the table view has not been grouped at design-time
cxGrid1DBTableView1.DataController.Options := cxGrid1DBTableView1.DataController.Options
+ [dcoGroupsAlwaysExpanded]; // this hides the +/- buttons of the grouped nodes
cxGrid1DBTableView1.DataController.FocusedRowIndex := 0; // focuses the first group
end;
注意:这已根据@Nil 的建议进行了更新。
第一行,仅当 TableView 在设计时尚未分组时才需要设置列的 GroupIndex。
设置 FocusedRowIndex 是可选的,具体取决于您希望 TableView 最初显示的方式
所以其实+/-分组按钮的隐藏和所有顶层分组节点的展开都可以通过设置DataController选项一步实现属性包括
dcoGroupsAlwaysExpanded
选项。
顺便说一句,设置 DataController 选项以抑制 expand/collapse 按钮的绘制,源自文章 https://www.devexpress.com/Support/Center/Question/Details/Q105527/how-do-i-hide-the-expand-button-on-a-grid