FireMonkey Grid Control - Säulenbewegung deaktivieren; Doch die Spaltengrößen zulassen
-
27-10-2019 - |
Frage
Ich verwende das TGRID in FM und möchte, dass Benutzer eine Spalte ändern können, aber die Spalten nicht neu organisieren (dh Drag & Move the Spalte Header). Ich habe versucht, viele der exponierten Eigenschaften zu ändern ("gesperrt", "DragMode", "aktiviertesRag" usw.) - aber nichts scheint den gewünschten Effekt zu haben?
In wahrer FM -Erfahrung; Ich vermute, dass ich die Klasse möglicherweise außer Kraft setzen und etwas in der Back-End-Struktur ändern muss. Aber ich bin mir nicht sicher, was/wo - oder auch wenn dies machbar ist?
Stichprobenquelle weise; Sie können das Problem sehen, wenn Sie einfach ein TGRID hinzufügen, ein paar Spalten hinzufügen und ausführen.
Vielen Dank im Voraus. Ian.
Lösung
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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow