请大家讨论一下动态创建控件的问题!!UP有分!

bengbeng24 2002-10-12 06:08:32
请大家讨论一下动态创建控件的问题!!UP有分!
我在创建动态控件时,有时能编译有时不能为何???
...全文
30 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
cgh1970 2002-10-13
  • 打赏
  • 举报
回复
up
lovedata 2002-10-12
  • 打赏
  • 举报
回复
以下的东西我试了,在我这里可以。(别忘了加上单元QComCtrls)
假设使用一个button来创建控件。
现在窗体上放一个progressbar控件,这样会自动声明progressbar1:TProgressBar;
然后在 TForm1.Button1Click里写上
var
progressbar1:TProgressBar;
begin
progressbar1:=TProgressBar.Create(self);
with progressbar1 do
begin
progressbar1.parent:=self;
progressbar1.align:=alBottom;
end;
end;
然后将刚才自己放上的那个progressbar删除。编译一下试试,应当就可以了,如果不行,权当灌水了:)
lovedata 2002-10-12
  • 打赏
  • 举报
回复
progressbar 的单元文件是QComCtrls
ly_liuyang 2002-10-12
  • 打赏
  • 举报
回复
其实很简单的,上面各位都说得很清楚了,再看看书就OK了
bengbeng24 2002-10-12
  • 打赏
  • 举报
回复
var
progressbar:TProgressBar;
begin
progressbar:=TProgressBar.Create(self);
with progressbar do
begin
parent:=self;
align:=alBottom;
end;
end;
别人告我这么写,告完就消失了!!!!!!!!!!!
lovedata 2002-10-12
  • 打赏
  • 举报
回复
能不能看看你不能编译时你写的什么代码???
linyin 2002-10-12
  • 打赏
  • 举报
回复
从你的第二个错误可以看出,你好象创建的是TProgressar对象,你在uses中未使用该单元
解决方法是:查查TProgressar在哪个单元下,然后添加。简单的方法是添加一个该控件后删除!
xdf_hubei 2002-10-12
  • 打赏
  • 举报
回复
创建COM类对象时要注意
例如创建ADO对象时注意,没有FORM的工程,如服务,不能直接创建ADO,否则出错,需要初始化COM组件
stanely 2002-10-12
  • 打赏
  • 举报
回复
uses
necesaryunit;
////////////////
if you do not know which unit to use,open "delphi help" and type the class you are using for instance "TProgressbar",then you will know everything.
xiufengy 2002-10-12
  • 打赏
  • 举报
回复
up
bengbeng24 2002-10-12
  • 打赏
  • 举报
回复
finally
XXX.free;
end;
powerbb 2002-10-12
  • 打赏
  • 举报
回复
up
powerbb 2002-10-12
  • 打赏
  • 举报
回复
学习
ptpa 2002-10-12
  • 打赏
  • 举报
回复
你吧TProgressar的单元文件找出来加上
UranusVan 2002-10-12
  • 打赏
  • 举报
回复
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code


[Error] Unit1.pas(20): Undeclared identifier: 'TProgressar'
你的错误肯定不是动态创建的问题!

动态创建只要你的控件定义对了,再USE你该控件必须的UNIT,
想怎么创建都可以!
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,ADODB, DB;
//要用到AODQUERY就要USE ADOD;
var
adoqmodify:tadoquery;
begin
try
adoqmodify:=tadoquery.Create(nil);
adoqmodify.Connection:=form1.ADOConnection1;
adoqmodify.SQL.Text:='select * from table';
adoqmodify.Open;
finally
adoqmodify.Free;
end;
end;

//OK!……
end;
cgh1970 2002-10-12
  • 打赏
  • 举报
回复
up
kaidu 2002-10-12
  • 打赏
  • 举报
回复
学习,学习
bengbeng24 2002-10-12
  • 打赏
  • 举报
回复
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code


[Error] Unit1.pas(20): Undeclared identifier: 'TProgressar'
eulb 2002-10-12
  • 打赏
  • 举报
回复
还是具体说说出错消息吧
leiqinggang 2002-10-12
  • 打赏
  • 举报
回复
有craate,parent,再有位置,然后其他的一些属性就可以了
加载更多回复(3)

5,392

社区成员

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

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