急啊!

解决方案 »

  1.   

    StringGrid不能和数据源绑定吧。
    只有你从dataset中读取,并且赋值给StringGrid
      

  2.   

    我可以一条条记录向stringgrid里去加但我又如何控制哪一列能修改,哪一列不能修改
      

  3.   

    设置fixedcol为固定列数,当然只能是前面的几个
      

  4.   

    给你找到一段,你试试:
    //加入如下代码,那么StringGrid的第四列就只读了.其他列非只读
    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    begin
      with StringGrid1 do begin
        if ACol = 4 then
          Options := Options - [goEditing]
        else Options := Options + [goEditing];
    end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      dx,dy:byte;
    begin
      if (acol = 4) and not (arow = 0) then
        with stringgrid1 do
        begin
          canvas.Brush.color := clYellow;
          canvas.FillRect(Rect);
          canvas.font.color := clblue;
          dx:=2;//调整此值,控制字在网格中显示的水平位置
          dy:=2;//调整此值,控制字在网格中显示的垂直位置
          canvas.TextOut(rect.left+dx , rect.top+dy , cells[acol, arow]);
        end;
      //控制标题栏的对齐
      if (arow = 0) then
        with stringgrid1 do
        begin
          canvas.Brush.color := clbtnface;
          canvas.FillRect(Rect);
          dx := 12; //调整此值,控制字在网格中显示的水平位置
          dy := 5; //调整此值,控制字在网格中显示的垂直位置
          canvas.TextOut(rect.left + dx, rect.top + dy, cells[acol, arow]);
        end;
    end;