我现要进行这样的列排请问怎样实现??   
    1             2             3         4   
  编号|物品名称|单位|数量   
    
    
    1               2             3         4   
  物品名称|编号|数量|单位   
    
    1         2             3         4   
  单位|编号|数量|物品名称   
    
  DbGridEh的列标题都是按1234...这样的号进行排列 
就是如何用代码实现dbgrideh的列调整位置?

解决方案 »

  1.   

    可以,但有这必要吗,Select时指定顺序啊
      

  2.   

    很有必要,请指教.我不想用select.
      

  3.   

    在运行时,用鼠标拖动列,完成后 DBGridEh1.SaveGridLayoutIni(ExtractFilePath(Application.ExeName)+'***.ini','xxx',false);
    在显示时:
    DBGridEh1.RestoreGridLayoutIni(ExtractFilePath(Application.ExeName)+'***.ini','xxx',[grpColIndexEh])
      

  4.   

    DBGridEh.Columns[2].Index := 0;
    这样就是把第三列移到第一列,原来的第一列变成第二,第二变成第三列
    以次类推,应该能满足楼主你的要求吧
      

  5.   

    在cxgrid中,我是這樣做的,寫到INI中,運行時加載
    //保存设置
    procedure TForm1.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
    cxGridView_ClassList.StoreToIniFile(ExtractFilePath(Paramstr(0))+'Config\ChooseClass.ini');
    end;//读取设置
    procedure TForm1.FormShow(Sender: TObject);
    begin
    Self.cxGridView_ClassList.RestoreFromIniFile(ExtractFilePath(Paramstr(0))+'Config\ChooseClass.ini');
    end;
      

  6.   

    请教 居士   我怎样用ini文件来保存和读取dbgrideh列颜色,列内容对齐方式,字段颜色,字段对齐方式,谢谢
      

  7.   

    你可以把相關style\color\(taCenter\taLeftjustify\taRightjustify等一便存入INI,調用時再將其之前的設置read到程序中即可
      

  8.   

    with   DBGEh   do 
        begin 
            for   i:=0   to   Columns.Count-1   do 
                if   Columns[i].Field <> nil   then 
                    with   Columns[i]   do 
                    begin 
                        tmp:=tmp+FieldName+ ', '; 
                        Params.Values[Fieldname+csLabel]:=Title.Caption; 
                        Params.Values[FieldName+csIndex]:=IntToStr(i); 
                        Params.Values[FieldName+csAlign]:=csAlignValues[Alignment]; 
                        if   Visible   then 
                            Params.Values[FieldName+csVisible]:= '1 ' 
                        else 
                            Params.Values[FieldName+csVisible]:= ' '; 
                        Params.Values[FieldName+csWidth]:=IntToStr(Width{Width_ColumnEhToField(DBGEh,Width)}); 
                        Params.Values[FieldName+csFT_Value]:=Footer.Value; 
                        Params.Values[FieldName+csFT_ValueType]:=csFT_ValueTypes[Footer.ValueType]; 
                        Params.Values[FieldName+csMinWidth]:=IntToStr(MinWidth); 
                        Params.Values[FieldName+csMaxWidth]:=IntToStr(MaxWidth);                     Params.Values[FieldName+csEh_Title+csFont_Name]:=Title.Font.Name; 
                        Params.Values[FieldName+csEh_Title+csFont_Size]:=IntToStr(Title.Font.Size); 
                        Params.Values[FieldName+csEh_Title+csFont_Color]:=IntToStr(Title.Font.Color); 
                        Params.Values[FieldName+csEh_Title+csFont_Style]:=GetFontStyle(Title.Font);                     Params.Values[FieldName+csEh_Data+csFont_Name]:=Font.Name; 
                        Params.Values[FieldName+csEh_Data+csFont_Size]:=IntToStr(Font.Size); 
                        Params.Values[FieldName+csEh_Data+csFont_Color]:=IntToStr(Font.Color); 
                        Params.Values[FieldName+csEh_Data+csFont_Style]:=GetFontStyle(Font);                     Params.Values[FieldName+csEh_Footer+csFont_Name]:=Footer.Font.Name; 
                        Params.Values[FieldName+csEh_Footer+csFont_Size]:=IntToStr(Footer.Font.Size); 
                        Params.Values[FieldName+csEh_Footer+csFont_Color]:=IntToStr(Footer.Font.Color); 
                        Params.Values[FieldName+csEh_Footer+csFont_Style]:=GetFontStyle(Footer.Font);                     Params.Values[FieldName+csEh_Title+csFont_BColor]:=IntToStr(Title.Color); 
                        Params.Values[FieldName+csEh_Data+csFont_BColor]:=IntToStr(Color); 
                        Params.Values[FieldName+csEh_Footer+csFont_BColor]:=IntToStr(Footer.Color); 
                    end; 
            Params.Values[csFields]:=tmp;