我的项目有问题。当我单击按钮关闭应用程序时,此代码是
procedure Tflogin.btnKeluarClick(Sender: TObject);
begin
application.Terminate;
end;
将显示一个兆位框错误“模块'project.exe'中写入地址00000004的地址004EAE10处的访问冲突””如何解决?
这是我的项目dpr中的代码
程序NEW_SPJK;
uses
Forms,
Controls,
login in 'login.pas' {flogin},
udm in 'header\udm.pas' {dm: TDataModule},
umenu in 'header\umenu.pas' {fmenu},
urelasi in 'header\urelasi.pas' {frelasi},
ubagian in 'header\ubagian.pas' {fbagian},
umetode in 'header\umetode.pas' {fmetode},
utambahhasil in 'header\utambahhasil.pas' {ftambahhasil},
utambahtanya in 'header\utambahtanya.pas' {ftambahtanya},
udaftar in 'header\udaftar.pas' {fdaftar},
ubiodata in 'header\ubiodata.pas' {fbiodata},
ujawab in 'header\ujawab.pas' {Form2},
uhasil in 'header\uhasil.pas' {fhasil},
uinformasi in 'header\uinformasi.pas' {fdaftarsiswa},
uabout in 'header\uabout.pas' {ftentang},
upilihbagiaan in 'header\upilihbagiaan.pas' {fproses},
umemo in 'header\umemo.pas' {fmemo};
{$R *.res}
var LoginOK: Boolean;
begin
Application.Initialize;
Application.CreateForm(Tdm, dm);
Application.CreateForm(Tfmenu, fmenu);
Application.CreateForm(Tflogin, flogin);
Application.CreateForm(Tfproses, fproses);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(Tfhasil, fhasil);
Application.CreateForm(Tfbiodata, fbiodata);
with Tflogin.Create(nil) do begin
LoginOK:=(ShowModal=mrOK);
Application.CreateForm(Tfmenu, fmenu);
Free;
end;
if not LoginOK then Halt;
Application.Run;
end.
最佳答案
您显示的代码中最明显的错误是您执行了两次:
Application.CreateForm(Tfmenu, fmenu);
我相信您只打算这样做一次。
作为一般建议,只需要调用一次
Application.CreateForm
即可创建主表单。其余时间,您可以调用表单的构造函数。我还建议您不使用全局变量和自动创建的表单可能会受益。更好的做法是在需要时创建表单,并在表单关闭时销毁它们。