DBGRIDEH.FROZENCOLS:=1;
DELPHI的DBGRID没有该属性

解决方案 »

  1.   

    换个解决方法看看,用两个DBGRID来显示你的数据,这样用户就可以不用
    左右翻页了,一目了然,客户说不定更乐意
      

  2.   

    给你一个在STRINGGRID中设置只读列的程序代码
    DBGRID应该也差不多把
    procedure TWORK_Plan.StringGrid2SelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    var
      R: TRect;
    begin
      empolyee.VISIBLE:=FALSE;
      NUM.VISIBLE:=FALSE;  With Sender As TStringgrid Do  If trim(Cells[4,arow])='' then
         Begin
           Cells[3,arow]:='Insert';
           Cells[4,arow]:='0011';
         End;With Sender As TStringgrid Do  If (ACol = 1) or (ACol = 2) and (ARow >= FixedRows) Then //在第二列显示一个ComboBox
      Begin
        //取消选中模式
         perform( WM_CANCELMODE, 0, 0 );    //确定ComboBox的位置
         R := CellRect( Acol, Arow );     if acol=1 then
         With empolyee do
             begin
               setbounds( R.left, R.top, r.right-r.left, height );
               itemindex := Items.IndexOf( Cells[ acol, arow ] );
               Show;
               BringTofront;           //使得ComboBox称为输入的焦点
               SetFocus;           //DroppedDown := true;
             end;     if acol=2 then
             With NUM do
             begin
               setbounds( R.left, R.top, r.right-r.left, height );
               text:=cells[acol,arow];
               Show;
               BringTofront;
               SETFOCUS;;
               //使得ComboBox称为输入的焦点
               //DroppedDown := true;
             end;
      End
      Else    if access[1]='2' then
            bEGIN
            if acol=5 then
               if Stringgrid2.cells[1,arow]=logon_user then
                  Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goAlwaysShowEditor]
               else
                  stringgrid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];        if acol=6 then
               //if Stringgrid2.cells[1,arow]=logon_user then
               Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goAlwaysShowEditor];
    //        else
    //           Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];        END;
         //设置哪个COL为只读选项    if access[1]='1' then
            begin
            if (acol=5) then
               if Stringgrid2.cells[1,arow]=logon_user then
                  Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goAlwaysShowEditor]
               else
                  stringgrid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];        if (acol=6) then
               stringgrid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];        End;
         //设置哪个COL为只读选项   if ACCESS[1]='3' then
          if acol=5 then
          if Stringgrid2.cells[1,arow]=logon_user then
             Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goAlwaysShowEditor]
          else
             Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];
          if acol=6 then
                   Stringgrid2.options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];
    end;
      

  3.   

    Snakeguo(枫) 请问哪有ehlib控件下载,
    to NightCloud() : 如果用两个dbgrid的话,一屏所显示的记录数有限。
    to  jiaorg(jiaorg): 在dbgrid中似乎行不通
    请大家继续关注,最后能通过程序控制实现!
      

  4.   

    你自己写一个吧,那个控件由TDBGrid继承,将TCustomGrid中的FixedRows和FixedCols再次声有出来就可以了。不过,哈哈,你自己试试,要想好看要作很多改进啊.
      

  5.   

    用dbgrid也可以进行锁定,只是比较难看;
    用如下代码TStringGrid(DBGrid1).FixedCols :=2;//这里数据你要调整来符合你的需要;Dbgrideh在 gxg.3322.net有下载,它就是ehlib里的
      

  6.   

    TStringGrid(DBGrid1).FixedCols :=2;/这个是可以的
      

  7.   

    TStringGrid(DBGrid1).FixedCols :=2;/这个是可以的
    这条语句在那个事件力写?
      

  8.   

    你可以随便写在哪里,比如formshow里
      

  9.   

    use two dbgrid is good method
      

  10.   

    TStringGrid(DBGrid1).FixedCols :=2;