정말 미칠정도의 에러가 발생...ㅠ.ㅠ
Project Project3.exe raised....로 시작하는 오류가 발생했습니다.
자세한 것은 첨부화일에 붙였구염
프로그램을 실행시키고 버튼을 클릭시키면 발생하는 에러입니다.
처음 한번만 무시하고 그냥 넘어가면 담에는 발생하지 않구요
available forms 으로 되어있고
메인폼(form1)에서 버튼을 클릭하면 다음 폼이 만들어지고
procedure TForm1.Button1Click(Sender: TObject);
begin
form3 := Tform3.create(self);
form3.showmodal;
form3.free;
end
form3에 디비그리드에 스크롤하면 에디트에 선택된 값이 나타나게 되어있습니다.
procedure TDM.Query12AfterScroll(DataSet: TDataSet);
begin
form3.Edit1.Text := DM.Query12.fieldbyname('item_code').ASstring;
form3.Edit2.Text := DM.Query12.fieldbyname('item_name').ASstring;
end;
중요한 것은 처음 버튼을 클릭시에만 에러가 발생하고 그 후에는 에러가 발생하지 않습니다.
다시해보니깐 한번만 그러는 것도 아니네염
3~4번에 한번꼴로 발생하는데 정말 미치겠습니다..
제발 답변 부탁드립니다.
일단 아래의 내용들을 참고 하세요
가정으로 메인 폼이 Form1이고,
서브 폼이 Form2라고 가정하고
아래의 내용 같이 실행 버튼 부분을 지금과 같이 먼저 수정 하세요
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Form2.Showmodal;
end;
그리고 Form2의 폼 이벤트 중에서
OnClose 이벤트 내용에 아래와 같은
문장으로 코딩을 해 보세요
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2 := nil;
Action := caFree;
end;
참고로 서브 폼에 특정 값을 보내고 싶은 분에서도
Form2 := TForm2.Create(Application);
// 사용자 정의 코딩 부분
Form2.Edit1.Text := DM.Query12.fieldbyname('item_code').ASstring;
Form2.Edit2.Text := DM.Query12.fieldbyname('item_name').ASstring;
Form2.Showmodal;
하면 됩니다.
그대신 Form2에 OnClose 이벤트 아래와 같은 코디이 있어야 합니다.
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2 := nil;
Action := caFree;
end;
참고 하세요