J
Jonson_sunshine
Unregistered / Unconfirmed
GUEST, unregistred user!
to 楼主:
“在application单元中写代码不方便啊,有时候需要用到form中的东西啊, 而且写得太复
杂了,delphi都不认识主窗口的了,“运行”按钮失效。”
不知道你这句话该怎么理解,但愿我理解对了。
我是这么操作的,既然你说application单元中写代码不方便,那就将它们移出来吧,
而且,将application单元(是program Project1中的内容吧)中的
Application.CreateForm(TForm1, Form1);注释掉,直接改用TForm1.Create(Form1);创
建窗体。
新建一个单元Unit2,如下
unit Unit2;
interface
uses Unit1 ,Forms; //包含单元
procedure CreateForm1; //定义一个过程
implementation
procedure CreateForm1();
begin
Form1 :=TForm1.Create(Form1); //创建窗体
....//后继处理代码(相当于在Unit1中的FormCreate过程中的代码)
end;
end.
program Project1;中的内容如下:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in '../Unit2.pas';
{$R *.res}
begin
Application.Initialize;
//Application.CreateForm(TForm1, Form1); //注释掉
Unit2.CreateForm1; //调用过程创建窗体
Application.Run;
Application.Terminate; //添加终止代码
end.
在TForm1.FormCreate中添加代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
.....//处理代码(如添加showmessage('Hello')进行测试)
Form1.Free; //窗体终止代码(不能用Close了,或者此处不释放,交由
//Application.Terminate;统一释放)
end;
以上代码就避免Application.CreateForm(TForm1, Form1);创建后再Close时出现闪烁的
情况,并可在适当的地方添加处理代码,不知合不合你要求。
“在application单元中写代码不方便啊,有时候需要用到form中的东西啊, 而且写得太复
杂了,delphi都不认识主窗口的了,“运行”按钮失效。”
不知道你这句话该怎么理解,但愿我理解对了。
我是这么操作的,既然你说application单元中写代码不方便,那就将它们移出来吧,
而且,将application单元(是program Project1中的内容吧)中的
Application.CreateForm(TForm1, Form1);注释掉,直接改用TForm1.Create(Form1);创
建窗体。
新建一个单元Unit2,如下
unit Unit2;
interface
uses Unit1 ,Forms; //包含单元
procedure CreateForm1; //定义一个过程
implementation
procedure CreateForm1();
begin
Form1 :=TForm1.Create(Form1); //创建窗体
....//后继处理代码(相当于在Unit1中的FormCreate过程中的代码)
end;
end.
program Project1;中的内容如下:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in '../Unit2.pas';
{$R *.res}
begin
Application.Initialize;
//Application.CreateForm(TForm1, Form1); //注释掉
Unit2.CreateForm1; //调用过程创建窗体
Application.Run;
Application.Terminate; //添加终止代码
end.
在TForm1.FormCreate中添加代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
.....//处理代码(如添加showmessage('Hello')进行测试)
Form1.Free; //窗体终止代码(不能用Close了,或者此处不释放,交由
//Application.Terminate;统一释放)
end;
以上代码就避免Application.CreateForm(TForm1, Form1);创建后再Close时出现闪烁的
情况,并可在适当的地方添加处理代码,不知合不合你要求。