自定义了一个类,该类中有一方法是获数据库字段,并把数据写入些类的私有数据成员Sg: TStringGrid中(此数据成员以写成了public的属性),方法如下:
procedure TGzlr.Init;
var
  TstrTemp: TStrings; //存贮表字段
  intCol: integer; //存贮表字段数
  i: integer;
begin
  try
    TstrTemp := TStringlist.Create;    {得到gzzd表所以字段}
    TstrTemp := Pay_out.GetField;    {得到字段数}
    intCol  := Tstrtemp.Count;
    
    {设定行和列}
    sg.ColCount := intCol;
    sg.RowCount := 1;    {把字段名赋的sg: StringGrid网格作为行标题}
    for i:= 0 to intCol - 1  do
    begin
      sg.Cells[i,0] := TstrTemp.Strings[i];
    end;
  finally
    TstrTemp.Free;
  end;
end;然后窗体网格(sg_1: TStringGrig)读取属性
sg_1 := Gzlr.GetSg;在窗体里读取Sg_1的行和列,数据都有,就是没有显示出来,请高手帮帮忙,在线等,解决马上给分!

解决方案 »

  1.   

    问题可能处在你自定义类中的stringGrid的使用上,不知道你时什么用的。
      

  2.   

    ColCount 和 RowCount 这两个属性你都设置了么?
    它可没有那么智能。
      

  3.   

    你上面的代码 RowCount 一直都是 1 。
      

  4.   

    还有两个属性是 FixCols 和 FixRows 你都设置了么?
    另外把你窗体读取的代码贴出来。估记是那里出了问题。
    还有就是上面的代码中如果 intCol  等于 0 的话,也不会有结果的。
      

  5.   

    intCol不可以能为O
    窗体读取的代码是:
    procedure TfrmGZLR.FormCreate(Sender: TObject);
    begin
      Gzlr := TGzlr.Create;  sg_1 := Gzlr.GetSg;
    end;属性是:
    property GetSg: TStringGrid read sg write sg;
      

  6.   

    1、你是指 stringGrid 没有显示到窗体上
    2、是 stringGrid 已经显示到窗体上,但是没有显示相应的文字数据?
    3、如果以上两个都没有问题,你的行数,和列数是否正确,
       我的意思是指如果你有3行4列,那 stringGrid 是显示三个空行,和四个空列?还是一行一列都没有?
      

  7.   


    stringGrid什么都没变,画上去的stringGrid时一模一样!
      

  8.   

    晕~,你画到窗体上去的stringGrid和你写入数据的 stringGrid 是一个么?
    你可以在窗体上面放一个 stringGrid 在类中的成员 FStringGrid 指向窗体中的 stringGrid 试试?另外你类成员内部的 stringGrid 是在类中创建的吗?正常的一个 stringGrid 想显示出来起码要写如下代码:
    var
      sg:TStringGrid;
    begin
      sg:=TStringGrid.Create(nil);
      sg.Parent:=Self;// Self 暂时认为是 Form;
      sg.SetBounds(100,100,200,400);
    end;