Delphi问题请指教

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:15:59
我现在在编一个成绩管理系统,其中设计了一个修改数据的模块,其中在这个窗体中,设置了一个Grid控件用来显示选定的数据表中的数据。那么当选定了要修改的表后,DBGrid中的字段(如姓名)就会发生相应的改变,要求它们改变时相应的下边的label控件的数量和它们的caption也相应的改变为Grid中相应的表中的字段数量和字段名。
主要是界面问题,就是说让动态的在窗体中生成label控件,这个控件的数量和Caption名是Grid中的表的某个字段的名称。(因为我可以随时改变Lable的LableName,相应的就要让界面发生变化),下面这个代码只能实现把DBGrid中所有的字段都显示出来了,可是我只要求显示ADOQuery中学生姓名便可,如:Label1.caption = '张学友',Label2.caption = '刘德华',有多少人程序运行后就有多少个Label,并且显示名字,请各位师兄指点指点:
var
i:Integer;
Lab:array of TLabel;
begin
if length(Lab)> 0 then //判断是否已经创建,如果有就删除
begin
for i:=0 to Length(Lab)-1 do
begin
FreeAndNil(Lab[i]);
end;
end;

SetLength(Lab,ADOQuery1.FieldCount);
for i :=0 to ADOQuery1.FieldCount-1 do
begin
Lab[i]:=TLabel.Create(Self);
Lab[i].AutoSize:=True;
Lab[i].Parent:=Panel1;
Lab[i].Top:=Trunc((i div 8)*70); //每行8个,每个间隔70
Lab[i].Left:=Trunc((i mod 8)*70);
Lab[i].Caption:=ADOQuery1.Fields.Fields[i].FieldName;

首先在那个按钮所在的Unit里面引用你需要弹出的form,就是在
implementation后换行添加
uses form;
然后通过按钮的click事件创建窗体即可,如果自动创立的只要显示即可
如:form.showmodal;
或者
form.show;(程序自动创立,这里只是显示出来)
不过这里都是一些很简单的描述和方法,具体LZ还是要多看书,这些都是很简单也很基本的了.