2014-03-26 2 views
1

주소 쓰기 내 프로젝트에 문제가 있습니다. 나는 버튼을 가까이 응용 프로그램을 클릭 할 때이며,이 코드가'project.exe'모듈의 004EAE10 주소에서 액세스 위반이 발생했습니다. 00000004 '

procedure Tflogin.btnKeluarClick(Sender: TObject); 
begin 
    application.Terminate; 
end; 

는 "주소 00000004 '의'project.exe '쓰기 모듈의 주소 004EAE10에서 액세스 위반"는 메가 박스 오류가 표시됩니다 어떻게 그것을 해결하기 위해?

이것은 내 프로젝트의 코드입니다. dpr program NEW_SPJK;

Application.CreateForm(Tfmenu, fmenu); 

난 당신이 한 번만 그렇게 의미 믿습니다

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

dpr 파일에 사용중인 코드를 게시 할 수 있습니까? – Graymatter

+0

'Tflogin' 폼이 메인 폼으로 생성 되었습니까? 팝업 모달 창에서 응용 프로그램을 종료하려고합니까? 로그인 대화 상자를 표시하는 데 사용하는 코드를 확인하는 데 도움이됩니다. –

+2

당신은'nil' 포인터에 접근하고 있습니다. 충분한 코드를 볼 수 없습니다. SSCCE를 보여주십시오. –

답변

3

당신이 보여 코드에서 가장 눈에 띄는 실수는 두 번이 작업을 수행 할 것입니다.

일반적인 조언으로 Application.CreateForm 번만 호출하면 주 양식을 만들 수 있습니다. 나머지 시간은 폼의 생성자를 호출 할 수 있습니다. 또한 전역 변수 및 자동 작성 양식을 사용하지 않으면 도움이 될 수 있다고 제안합니다. 필요한 경우 양식을 작성하고 양식을 닫을 때 파기하는 것이 더 좋습니다.

+0

감사합니다 mr.David ..이 문제가 해결되었습니다 :) –

관련 문제