在网上找了一段自动调整列宽的代码,可是不知把它贴在哪个form里的哪个位置,是拆开来一段段放,还是??/
 刚学请知道的朋友说下。
interface
THackDBGridEH = class(TCustomdbgrideh)
end;procedure OptimizeGrid(AGrid: TCustomDbGridEh);implementation
procedure OptimizeGrid(AGrid: TCustomDbGridEh);
var
i: integer;
begin
// 優化GRID的寬度
for i := 0 to TDBGridEh(AGrid).Columns.count - 1 do
THackDBGridEH(AGrid).OptimizeSelectedColsWidth(TDBGridEh(AGrid).Columns[i]);
end;

解决方案 »

  1.   

    這樣:
    procedure OptimizeColsWidth(ColumnsList: TColumnsEhList);
    它是在protected中的,把它移动到public域,这样就在程序中就可以调用。即放在public域中,調用時:dbgrideh1.OptimizeColsWidth(DBGridEh1.VisibleColumns); 
      

  2.   

    放到加载数据后,比如ADOQuery.open;后面
      

  3.   

    窗口代码如下,我把上面的代码加进去后就出错了
    unit ajust;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, GridsEh, DBGridEh, DB, ADODB, ExtCtrls, StdCtrls, Buttons;type
      TForm11 = class(TForm)
        Panel1: TPanel;
        Panel2: TPanel;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        DBGridEh1: TDBGridEh;
        Panel3: TPanel;
        GroupBox1: TGroupBox;
        Label1: TLabel;
        Edit1: TEdit;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Edit2: TEdit;
        GroupBox2: TGroupBox;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form11: TForm11;implementationuses share;{$R *.dfm}end.
      

  4.   

    unit ajust;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, GridsEh, DBGridEh, DB, ADODB, ExtCtrls, StdCtrls, Buttons;type
      THackDBGridEH = class(TCustomdbgrideh);  TForm11 = class(TForm)
      Panel1: TPanel;
      Panel2: TPanel;
      ADOQuery1: TADOQuery;
      DataSource1: TDataSource;
      DBGridEh1: TDBGridEh;
      Panel3: TPanel;
      GroupBox1: TGroupBox;
      Label1: TLabel;
      Edit1: TEdit;
      Label2: TLabel;
      Label3: TLabel;
      Label4: TLabel;
      Edit2: TEdit;
      GroupBox2: TGroupBox;
      BitBtn1: TBitBtn;
      BitBtn2: TBitBtn;
      private
      { Private declarations }
      public
      { Public declarations }
      end;var
      Form11: TForm11;implementationuses share;{$R *.dfm}procedure ADOQuery1AfterOpen( Sender: TObject )
    begin
      // 数据集打开后自动列宽所有可视列
      THackDBGridEH(DBGridEh1).OptimizeColsWidth(DBGridEh1.VisibleColumns); 
    end;end.