我的项目有问题。当我点击按钮关闭应用程序时,这个代码是
procedure Tflogin.btnKeluarClick(Sender: TObject);
begin
application.Terminate;
end;
将显示一个兆箱错误“地址004EAE10中的模块'project.exe'写入地址00000004的访问冲突'”如何解决?
这是我的项目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.
答案 0 :(得分:3)
您所展示的代码中最明显的错误是您执行了两次:
Application.CreateForm(Tfmenu, fmenu);
我相信你只想做一次。
作为一般建议,只需要调用Application.CreateForm
一次即可创建主窗体。其余的时间你可以调用表单的构造函数。我还建议您不要使用全局变量和自动创建的表单。最好的做法是在需要时创建表单,并在关闭时销毁表单。