进来看看如何实现这个功能?

minlily 2002-09-11 02:34:49
我想要实现的功能是:当选择一个数据表时,能不能在另一个窗体中动态生成该数据表中所有字段对应的label和dbedit.
...全文
47 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
longlongge 2002-09-13
  • 打赏
  • 举报
回复
可以阿 !
PeakChen 2002-09-13
  • 打赏
  • 举报
回复
你试过不行吗?没道理的。
weboradel 2002-09-13
  • 打赏
  • 举报
回复
不知道你用什么连数据库的,我一般用ADOQUERY,它的fields,和filedbyname(QUERY的和这个一样)都可以获得当前数据值。

当然你首先要用USES将用到的窗体文件声明进来。
air_line 2002-09-13
  • 打赏
  • 举报
回复
没有问题,只要能写语句就行了
shanxia 2002-09-13
  • 打赏
  • 举报
回复
同意大家的观点!!!!!!!!!
lulu99 2002-09-13
  • 打赏
  • 举报
回复
xunji说的对。
Delphi_Li 2002-09-13
  • 打赏
  • 举报
回复
当然可以了,使用Fields,如果想知道更详细的内容,就的使用M$的ADOX了!!!
minlily 2002-09-13
  • 打赏
  • 举报
回复
运行时DataSrc:=TDataSource.Create(Form2)这句总报错,说没有定义Tdatasource
blazingfire 2002-09-13
  • 打赏
  • 举报
回复
如下基本上可以了,自己调一下位置:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
L:TLabel;
E:TDBEdit;
DataSrc:TDataSource;
begin
DataSrc:=TDataSource.Create(Form2);
DataSrc.DataSet:=Table1;
for i:=0 to Table1.FieldDefs.Count-1 do
begin
L:=TLabel.Create(Form2);
L.Name:='Label'+IntToStr(i);
L.Parent:=Form2;
L.Caption:=Table1.Fields[i].FieldName;
L.Left:=i*50+10;
L.Top :=10;
E:=TDBEdit.Create(Form2);
E.Name:='DBEdit'+IntToStr(i);
E.Parent:=Form2;
E.Left:=i*50+10;
E.Top :=30;
E.DataSource:=DataSrc;
E.DataField:=Table1.Fields[i].FieldName;
end;
end;
xunji 2002-09-11
  • 打赏
  • 举报
回复
能呀,
FIELDS时就有这些东西呀
dreamfan 2002-09-11
  • 打赏
  • 举报
回复
多此一举
minlily 2002-09-11
  • 打赏
  • 举报
回复
dbedit用来显示记录
freelyl 2002-09-11
  • 打赏
  • 举报
回复
不是太明白 。LABEL是可以,DBEDIT什么用的

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧