模块' project.exe'中地址004EAE10的访问冲突写地址00000004'

时间:2014-03-26 06:58:47

标签: delphi

我的项目有问题。当我点击按钮关闭应用程序时,这个代码是

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.

1 个答案:

答案 0 :(得分:3)

您所展示的代码中最明显的错误是您执行了两次:

Application.CreateForm(Tfmenu, fmenu);

我相信你只想做一次。

作为一般建议,只需要调用Application.CreateForm一次即可创建主窗体。其余的时间你可以调用表单的构造函数。我还建议您不要使用全局变量和自动创建的表单。最好的做法是在需要时创建表单,并在关闭时销毁表单。