메인폼에 있는 메인메뉴를 누르면 서브에 있는 함수를 실행시킵니다.
그런데 AccessViolation에러가 뜹니다.
밑에 프로그램이 있습니다. 무엇이 문제입니까?
메인폼입니다.
//-----------------------------------------------
procedure TfMainForm.N3Click(Sender: TObject);
begin
fFil_File.pToDifSave;
end;
//------------------------------------------------
서브폼입니다.
//------------------------------------------------
procedure TfFil_File.pToDifSave;
begin
If Not SaveDialog1.Execute Then --> 여기서 AccessViolation발생
Exit;
If SaveDialog1.FileName = '' Then
Exit;
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
End;
//------------------------------------------------
> 메인폼에 있는 메인메뉴를 누르면 서브에 있는 함수를 실행시킵니다.
> 그런데 AccessViolation에러가 뜹니다.
> 밑에 프로그램이 있습니다. 무엇이 문제입니까?
>
> 메인폼입니다.
> //-----------------------------------------------
> procedure TfMainForm.N3Click(Sender: TObject);
> begin
> fFil_File.pToDifSave;
> end;
> //------------------------------------------------
> 서브폼입니다.
> //------------------------------------------------
> procedure TfFil_File.pToDifSave;
> begin
> If Not SaveDialog1.Execute Then --> 여기서 AccessViolation발생
> Exit;
>
> If SaveDialog1.FileName = '' Then
> Exit;
>
> RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
>
> End;
> //------------------------------------------------
제 생각에는 서브폼이 create되지 않은 상태에서 호출을 해서 생기는 에러같은데요
아래처럼 서브폼의 함수를 실행하기전에 해당 폼이 create 되어있는지를
확인한 후 없으면 create 해주는 식의 처리가 필요할 것 같은데요
procedure TfMainForm.N3Click(Sender: TObject);
begin
if fFil_File = nil then
Application.CreateForm( TfFil_File, fFil_File);
fFil_File.pToDifSave;
end;