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

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即可创建主表单。其余时间,您可以调用表单的构造函数。我还建议您不使用全局变量和自动创建的表单可能会受益。更好的做法是在需要时创建表单,并在表单关闭时销毁它们。

07-28 06:41