请教下OnShow事件和OnCreate事件有啥区别吗??
procedure Tlogin.Formshow(Sender: TObject);
begin
with dm.aq_login do
begin
Close;
sql.Clear;
SQL.Add('select * from users');
Open;
ComboBox1.Items.Clear;
while not eof do
begin
ComboBox1.Items.Add(fieldbyname('users').AsString);
next;
end;
end;
end;
这段代码我用Create写就弹错误。。用Show写就没事。。但是用Show写。。下拉框不显示数据这是为什么?~dm是数据模块 aq_login是adoquery组件。。ADO是adoconnection组件dm的代码是
procedure TDM.DataModuleCreate(Sender: TObject);
begin
ado.ConnectionString:='field name = GL.udl';
end;end.
在文件夹里已经建了GL.udl文件并且连接好数据库。测试成功了。~~aq_login的connection的值也设置成ADO了
procedure Tlogin.Formshow(Sender: TObject);
begin
with dm.aq_login do
begin
Close;
sql.Clear;
SQL.Add('select * from users');
Open;
ComboBox1.Items.Clear;
while not eof do
begin
ComboBox1.Items.Add(fieldbyname('users').AsString);
next;
end;
end;
end;
这段代码我用Create写就弹错误。。用Show写就没事。。但是用Show写。。下拉框不显示数据这是为什么?~dm是数据模块 aq_login是adoquery组件。。ADO是adoconnection组件dm的代码是
procedure TDM.DataModuleCreate(Sender: TObject);
begin
ado.ConnectionString:='field name = GL.udl';
end;end.
在文件夹里已经建了GL.udl文件并且连接好数据库。测试成功了。~~aq_login的connection的值也设置成ADO了
解决方案 »
- interbase设置和delphi7调试的问题
- 数据显示的问题. 急急!!!
- 救命为什么我的delphi不能用?
- 急,50分求Delphi7的QuickRep控件,ok 就给分
- 如可解决使用ActiveSkin 换肤后 Image控件不能显示图像的问题?
- 困扰我一个月的问题,就不信没人能答得出! (**挑战高手**)
- 好久没来了,正在写一本书。。。
- 怎样对Dbgrid组件中字段按条件进行排序!
- adoquery中如何用locate来进行模糊查询
- 西安大唐电信到底怎么样,来者有分,回答踊跃,会继续加分!
- 随便打开一个东西都会遮住面板是怎么回事?见图
- 请问运行Delphi程序报告 CnIp.dcu 是缺少了哪个第三方控件
OnCreate是调用Create触发的事件
可以去看看工程文件,把DataModule的create放到前面。
可能吧?但是我创建应用程序的时候。。他总是选创建form1的。。怎么才能放前面?
哦。。先被creat?再show?那这两个事件有什么不同吗?比如我写弹出form2子窗口的时候用form2.show和form2.create。。有啥区别没??~~如果差不多的话。。哪个事件好用点?~
第二步:Show
是啥意思??
我在外面文件夹中建立了一个GL.udl文件。。连接上数据库。测试也成功了。然后在数据模块上创建的时候。。ado.ConnectionString:='field name = GL.udl'这样为什么错呀?
onshow是窗体显示时候触发事件
create后触发oncreate,show后触发onshow如果你懂,为什么会不知道用法上的区别呢?例如说create是一次性的,show是可以多次触发的。
窗体,创建,OnCreate
onshow是窗体显示时候触发事件
说的更清楚点 就是 窗体可以马上创建 但不是显示
这时候就只触发了oncreate 事件
是这样子的。。比如我程序开始。。主窗体Form1是不是被create,也就是创建。。这时候子窗体Form2是不是被创建呢?~如果没被创建。那么如果我在Form2中使用onshow事件就是没反应的是吗?如果被创建了。。我在Form2中使用create也是不行的?因为它已经被创建了?再者就是。。如果我关了Form2子窗口。。用Form2.Close这时候Form2是被关闭了还是被隐藏了?
隐藏应该是Hide吧?~如果再次开启的时候。。是要用create呢。还是用show呢?~~。。当然,平时我都是用show的。。既然今天讨论到这问题。。就问的详细点。。我的delphi的基础不是很好。。请多指教~谢谢~~
再者就是。。如果我关了Form2子窗口。。用Form2.Close这时候Form2是被关闭了还是被隐藏了?
隐藏应该是Hide吧?~如果再次开启的时候。。是要用create呢。还是用show呢?~~。。当然,平时我都是用show的。。既然今天讨论到这问题。。就问的详细点。。系统默认窗口close是隐藏了,你下次使用直接show就可
Create是创建
Show是显示两者的关系是:
要Show的窗体必须先经过Create
但是Create过的窗体并不一定会Show程序开始的时候窗体创建与否是由你自己决定的。如果窗体没有被创建,那么窗体自身的OnShow事件永远不会触发,外部调用的Form.Show会产生Access Violation错误。Close是关闭窗体,这时窗体本身并没有销毁,再次打开用Show。销毁窗体用Free。
英文翻译一下也能知道不是一样的啊。
Close是关闭。
hide是隐藏。
就好比,你登陆QQ以后,再分别进行一下隐身和关闭QQ,现在你觉得是一样的吗?
show是显示的时候调用的。