dbgrideh、dxdbgrid和cxgrid保留上次的列宽、列序

delphi中常用的数据显示控件大多数都可以用拖动来调列顺序和列宽,而且这些设置是可以在下次打开时保留上次的操作的,这是个很实用也很有用的功能,能给用户很好的使用体验,下面是常用的DBGridEh、DxDbGrid和cxgrid三个数据显示控件的设置方法:

 

dbgrideh:


需要另外一个控件,PropStorageEh
 PropStorageEh 可以很方便的将窗体中控件的属性值保存到Ini文件,并且需要进行读取设置。只需要对StoredProps属性进行设置,在OnCreate事件:
procedure Tform1.FormCreate(Sender: TObject);
var
  IniPropStorageMan: TIniPropStorageManEh;
begin
  IniPropStorageMan := TIniPropStorageManEh.Create(nil);
  if not DirectoryExists(ExtractFileDir(ParamStr(0))+'/Cust_Ini/') then
    ForceDirectories(ExtractFileDir(ParamStr(0))+'/Cust_Ini/');
  IniPropStorageMan.IniFileName := ExtractFileDir(ParamStr(0)) + '/Cust_Ini/'+ Self.Name +'_INI';
  SetDefaultPropStorageManager(IniPropStorageMan);
end; 

 

dxdbgrid:


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  dxDBGrid1.SaveToIniFile('E:/exec/dxdbgrid列宽/'+ Self.Name +'.ini');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxDBGrid1.LoadFromIniFile('E:/exec/dxdbgrid列宽/'+ Self.Name +'.ini');
end;

 

cxgrid:


procedure TForm1.FormCreate(Sender: TObject);
begin
  cxGrid1DBTableView1.RestoreFromIniFile('E:/exec/cxgrid列宽/'+ Self.Name +'.ini');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  cxGrid1DBTableView1.StoreToIniFile('E:/exec/cxgrid列宽/'+ Self.Name +'.ini');
end;

你可能感兴趣的:(dbgrideh、dxdbgrid和cxgrid保留上次的列宽、列序)