我刚刚编写了一个注册器 ,在工程文件里编写如下代码:
program Project1;uses
Forms,Controls, Registry,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Dialogs, StdCtrls, jpeg, ExtCtrls;
{$R *.res}
var
Myreg : TRegistry ;
times : integer ;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6); Myreg := TRegistry.Create ;
Myreg.RootKey := HKEY_CURRENT_USER ;
Myreg.OpenKey('software\jysoft\',true ) ;
times := Myreg.ReadInteger('times');
if times > 3 then
begin
ShowMessage('Too Times!' );
end
else if times <> 999 then
begin
Form6.ShowModal ;
end
else
begin
Application.Run;
end;
Myreg.Free ;end.
为什么会抛出堆栈溢出
program Project1;uses
Forms,Controls, Registry,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Dialogs, StdCtrls, jpeg, ExtCtrls;
{$R *.res}
var
Myreg : TRegistry ;
times : integer ;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6); Myreg := TRegistry.Create ;
Myreg.RootKey := HKEY_CURRENT_USER ;
Myreg.OpenKey('software\jysoft\',true ) ;
times := Myreg.ReadInteger('times');
if times > 3 then
begin
ShowMessage('Too Times!' );
end
else if times <> 999 then
begin
Form6.ShowModal ;
end
else
begin
Application.Run;
end;
Myreg.Free ;end.
为什么会抛出堆栈溢出
解决方案 »
- 关于字符串分解函数的问题
- 闲置书籍占地方,无用处理掉,有需要的来看看!
- imagelist控件中加入的图标要求是多少像素的,我的图标是32*32,加入的的时候提示我太大
- 用Rave Report 什么实现这样的报表
- dbedit问题很简单,大家帮帮忙?
- 怪事,是哪里问题?高手是小菜一碟?
- 简单的关于self的一段程序,我是越看越郁闷...请大哥帮忙!!
- 急求文件传输程序。
- 请教str->extended的转换问题
- 如何调用word书签,一次生成多份报告? 请教了。
- 诚请高人:怎么让RadioGroup里每一项的字符如lable般支持分行显示!急!
- 用ADO与SQLSERVER连接如何恢复数据库
times := StrToIntDef(Myreg.ReadString('times'),0);
begin
Form6.ShowModal ;
end
else
begin
Application.Run;
end;
这可能有问题哈
else if 的条件有问题啊?
把它放到Myreg.Free ;之后。
另外如果你要中途退出程序(times > 3)可以Application.Terminated.
把它放到Myreg.Free ;之后。
另外如果你要中途退出程序(times > 3)可以Application.Terminated.
第二种可以用ShowModal,而第一种好像不能用Showmodal,
还有既然用了Application.CreateForm(TForm1,Form1)那么Application.Run好像是肯定需要的了!
不如这样
begin
if 到期 then
Exit;
Application.Initialize;
Application.CreateForm(TForm1, Form1); //好像是默认显示第一个,
Application.CreateForm(TForm2, Form2);
...end.就可以了,用不着那样复杂吧