Firemonkey网格控制 - 禁用列移动;但允许列大小调整

时间:2012-02-18 13:08:22

标签: delphi grid delphi-xe2 firemonkey

我在FM中使用TGrid并希望用户能够调整列的大小,但不能重新组织列(即拖动和移动列标题)。我尝试更改了许多暴露的属性(“Locked”,“DragMode”,“EnableDrag”等等) - 但似乎没有任何效果?

真正的FM体验;我猜我可能必须覆盖类并在后端结构上改变一些东西;但我不确定是什么/在哪里 - 或者即使这是可行的?

样本来源明智;如果您只是添加TGrid,添加几列并运行,则可以看到问题。

非常感谢提前。伊恩。

1 个答案:

答案 0 :(得分:2)

type
  TCustomGridHelper = class helper for TCustomGrid
  public
    /// <summary>
    /// Publish private FHeader from FMX.Grid.TCustomGrid.
    /// </summary>
    function _GetHeader: THeader;
  end;

function TCustomGridHelper._GetHeader: THeader;
begin
  Result := Self.FHeader;
end;

procedure TForm1.Grid1ApplyStyleLookup(Sender: TObject);
var
  I: Integer;
  Header: THeader;
  HeaderItem: THeaderItem;
begin
  Header := Grid1._GetHeader;
  for I := 0 to Header.ChildrenCount - 1 do
  begin
    HeaderItem := Header.Children[I] as THeaderItem;
    HeaderItem.DragMode := TDragMode.dmManual;
  end;
end;