自定义了一个类,该类中有一方法是获数据库字段,并把数据写入些类的私有数据成员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的行和列,数据都有,就是没有显示出来,请高手帮帮忙,在线等,解决马上给分!
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的行和列,数据都有,就是没有显示出来,请高手帮帮忙,在线等,解决马上给分!
它可没有那么智能。
另外把你窗体读取的代码贴出来。估记是那里出了问题。
还有就是上面的代码中如果 intCol 等于 0 的话,也不会有结果的。
窗体读取的代码是:
procedure TfrmGZLR.FormCreate(Sender: TObject);
begin
Gzlr := TGzlr.Create; sg_1 := Gzlr.GetSg;
end;属性是:
property GetSg: TStringGrid read sg write sg;
2、是 stringGrid 已经显示到窗体上,但是没有显示相应的文字数据?
3、如果以上两个都没有问题,你的行数,和列数是否正确,
我的意思是指如果你有3行4列,那 stringGrid 是显示三个空行,和四个空列?还是一行一列都没有?
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;