Q&A

  • MDI 폼에서 자식(Child)폼끼리 데이터 주고받는것좀 봐주세요..??

// 메인폼(Form5)에서 서브폼(Child Form: Form1) 불로 오기 //

// uses UHome_01(Form1), UHome_02(Form2), UHome_03(Form3), UHome_04(Form3); // USE 절


procedure TForm5.N2Click(Sender: TObject);

Var Form1:TForm1;
    i:integer;
    OldCursor:Tcursor;
begin

// 자료 입력, 삭제, 조회 폼 //

        for i:=0 to MDIChildCount -1 do
          if MDIChildren[i] is TForm1 Then
           Begin
             MDIChildren[i].Show;
             exit;
           End;
          OldCursor := Screen.Cursor;
          Screen.Cursor := crHourglass;

          Try
             Form1 := Tform1.Create(Application);
             Form1.show;
           Finally
             Screen.Cursor := OldCursor;
           End;
end;



// Form1(Chil Form)에서 또다른 서브폼 불러오기 //

// uses UHome_02(Form2), UHome_03(Form3);        // USE 절 //

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
      Form2 := Tform2.Create(Application);
      Form2.show;
End;

// Form2에서 데이터를 Form1으로 입력 하기 //

// uses UHome_04(Form4), UHome(Form5), UHome_01(Form1); // Use 절 //

procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin

// 에러 발생 부분 // 자식폼끼리는 자료 이동이 안되는건가요?
// 에러 내용 : Access Violation ....!!!!!!
// 자식 폼에서 부모폼으로는 이동이 되더라구요..//

          Form1.Edit1.Text    := Form2.query2.FieldByname('tCode').AsString;
          Form1.Pname.Caption := Form2.query2.FieldByname('tname').AsString;
          Form2.Close;
end;


델마당과 델파이 코리아 사이트 게시판을 찾아보니까..

대부분이 USE절이 잘못 되었다고 나오더라구요?

위에 코딩에서 보신것처럼 USE절도 추가를 다 했구요..

다른 문제는 없는것 같은데..이상하네요..

그리고, 폼 스타일을 처음에 프로그램 작성할때 Normal로 할때는 잘 되었습니다.

프로그램을 작성을 다한후에..MDI로 바꾸니까 문제가 생기더라구요..

고수님들의 많은 도움 부탁 드리겠습니다.

그럼 수고하세요.


1  COMMENTS
  • Profile
    최병철 2003.05.16 02:29
    원하는 답인지는 모르겠지만

    uses문 추가는 잘 하셨고

    자식 폼에서 자식 폼을 새로이 생성할 필요는 없다고 봅니다.

    uses문을 추가하면
    폼에 대한 객체 제어도 가능하기 때문에...