Firemonkey Grid Control - отключить перемещение столбца;пока разрешить размер столбца - PullRequest
1 голос
/ 18 февраля 2012

Я использую TGrid в FM и хочу, чтобы пользователи могли изменять размер столбца, но не реорганизовывать столбцы (т. Е. Перетаскивать и перемещать заголовок столбца).Я пытался изменить многие из представленных свойств («Заблокировано», «DragMode», «EnableDrag» и т. Д.), Но, похоже, ничего не дает желаемого эффекта?

В настоящем FM-опыте;Я предполагаю, что мне, возможно, придется переопределить класс и что-то изменить в серверной структуре;но я не уверен, что / где - или даже если это возможно?

Мудрый источник выборки;Вы можете увидеть проблему, если просто добавите TGrid, добавите несколько столбцов и запустите.

Большое спасибо заранее.Ян.

1 Ответ

2 голосов
/ 19 февраля 2012
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;
...