FireMonkey Grid Control - déplacer la colonne Désactiver; tout en permettant le dimensionnement de la colonne
-
27-10-2019 - |
Question
J'utilise le TGrid FM et que vous souhaitez que les utilisateurs soient en mesure de redimensionner une colonne, mais pas réorganisez les colonnes (ie. Glisser-déplacer l'en-tête de colonne). Je l'ai essayé de changer plusieurs des propriétés exposées ( « verrouillé », « DragMode », « EnableDrag » etc ...) - mais rien ne semble avoir l'effet désiré
En véritable expérience FM; Je suppose que je dois remplacer quelque chose de classe et le changement à la structure arrière-plan; mais je ne suis pas sûr de / où - ou même si cela est possible
source de l'échantillon sage; vous pouvez voir le problème si vous ajoutez simplement un TGrid, ajouter quelques colonnes et exécution.
Un grand merci à l'avance. Ian.
La solution
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;