FormCreate之前还有没有事件?(20分)

  • 主题发起人 主题发起人 WilliamGui
  • 开始时间 开始时间
W

WilliamGui

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个窗体,增加了一个属性,属性如何设置初始值?我想在FormCreate之前就设置
 
窗体都没有创建,你如何赋值啊?
 
在OnShow或Create事件设置吧
 
楼上的搞笑!
你要给一个类的实例的某个成员赋值,如果该类的实例都没有创建,如何赋值啊?
 
Application.Initialize;
 
Unit 中 initialization 和 finalization 关键字是最初运行和最后运行的代码,
楼主可以在这里做文章。
 
可以的,我记得好像 继承 CreatePara..override 什么的,就可以做,以前写过,记不太清楚,也不想去查了,所以请教各位
 
royal1442兄误会了,我当然明白你的意思

楼主的意思是想给窗体某些属性赋初值,我建议在OnShow或Create里做
 
在Create事件设置不就可以啦,
 
重载类的构造函数,把属性变量作为参数传进去
 
不管什么时候,在哪里赋值,都必须在实例创建以后!
 
当然可以在Unit的 initialization部分做文章,该部分就是在FormCreate之前要执行的代码
 
constructor Create(AOwner: TComponent); override; ?
 
constructor Create(AOwner: TComponent); reintroduce;

constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//属性赋值..
end;
 
为什么一定要在Create之前做呢
 
initialization
 
找到了,一下子就找到了,可以继承几个方法,都可以在用户窗口FormCreate事件之前写代码,当然喽,那时候窗口对象是已经创建的。我用的是CreateParams方法。在这里与大家分享。
创建一个新窗口,在保护段写上:
procedure CreateParams(var Params: TCreateParams); override;
begin
//你的代码
WindowState:=wsMax..;
inherited;
end;
为了证实所言不虚,在FormCreate事件中也写上代码,如ShowMessage,然后,你试试。

又有新贴,请大家帮忙:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3328005
 
这个是给你设置窗口风格什么的啊..
此时对象可能已经建立, 但是窗口还未建立..
不过能达到目的就行了, 呵呵.. :)
关于CreateParams, 可以看看俺这个
http://bbs.2ccc.com/topic.asp?topicid=143492
 
对于Windows来说没有创建,但对于Delphi OOP来说,已经创建了
谢谢麻子
 
后退
顶部