یک ترفند جالب :
البته برای من جالبه
کسایی که با cxgrid کار کردند می دونند که group by box آن شاهکاره حالا زمانی که فیلد ها رو در اون پنل برای گروه بندی رها می کنیم و بعد دوباره بخوایم فیلدها به ترتیب اول چیده بشند دردسره چرا که ممکنه مکان فیلد ها رو حفظ نباشیم
این کد به کمکمون میاد
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, dxmdaset, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid, StdCtrls, cxGridDBDataDefinitions,
dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel,
dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver,
dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
dxSkinscxPCPainter, cxNavigator;
//------------------------------------------------- بازگشت فیلد ها بعد از گروه بندی به جای اصلی خود --------------------------
type
TMyGridDBTableView = class(TcxGridDBTableView)
protected
function GetViewInfoClass: TcxCustomGridViewInfoClass; override;
end;
TMyGridSite = class(TcxGridSite)
public
procedure EndDragAndDrop(Accepted: Boolean); override;
end;
TMyGridTableViewInfo = class(TcxGridTableViewInfo)
protected
function GetSiteClass: TcxGridSiteClass; override;
end;
TmyGridColumnHeaderMovingObject = class(TcxGridColumnHeaderMovingObject);
TcxGridDBTableView = class(TMyGridDBTableView);
//------------------------------------------------- بازگشت فیلد ها بعد از گروه بندی به جای اصلی خود --------------------------
TForm1 = class(TForm)
cxGrid1: TcxGrid;
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//------------------------------------------------- بازگشت فیلد ها بعد از گروه بندی به جای اصلی خود --------------------------
{ TMyGridTableViewInfo }
function TMyGridTableViewInfo.GetSiteClass: TcxGridSiteClass;
begin
Result := TMyGridSite;
end;
{ TMyGridDBTableView }
function TMyGridDBTableView.GetViewInfoClass: TcxCustomGridViewInfoClass;
begin
Result := TMyGridTableViewInfo;
end;
{ TMyGridSite }
procedure TMyGridSite.EndDragAndDrop(Accepted: Boolean);
begin
with (TMyGridColumnHeaderMovingObject(DragAndDropObject ).SourceItem as TcxGridDBColumn) do
begin
Tag := Index;
inherited;
Index := Tag;
end;
end;
//------------------------------------------------- بازگشت فیلد ها بعد از گروه بندی به جای اصلی خود --------------------------
end.