Q&A

  • showmodal을 통해서 form을 만들었는데....
프로그램에서 조회하는 폼을 showmodal을 통해서 조회를 했습니다.
물론 폼에는 DBGrid가 나타나면서 제가 조회한 내용들이 refresh됩니다.
그런데 표시된 데이타를 만약 Click하거나 Enter키를 치면 ShowModal을 사용
했던 폼으로 돌아가서 그 Edit박스에 표시하려고 합니다.
어떻게 해야할 지.....
3  COMMENTS
  • Profile
    yosule 2003.02.24 21:56

    ShowModal 상태인 폼을 닫지 않는 이상 다른 폼에 접근은 안됩니다.
    Edit컴포넌트에 표현할 폼을 최상위 폼으로 속성을 고쳐서 Show메소드
    로 폼을 보이는 방법이 낫지 않을까하는 생각입니다.
  • Profile
    이정택 2003.02.24 22:05

    show메소드로 폼을 보이면 화면상에서 DB내용을 나타나면 원하는 DBGRid의
    내용에 가져다가 Click하면 이전에 Active한 폼의 EDIT박스로 내용이 들어가게 하려고 합니다.
  • Profile
    아폴론 2003.02.24 23:16


    //Test1폼을 부르는 부모폼
    TestForm 폼에 edit1 컴포를 가져다 놓고 별도의 버튼을 누르면 Test1폼이 아래처럼 쇼모달로 보여집니다.

         FmTest1:= TFTest1.Create(Application);
          try
           FmTest1.ShowModal;
            //요기까지 이벤트를 타고 이제 Test1폼이 보여지고 그리로 제어권이 넘어가겠죠?....


          finally
           Edit1.text := FmTest1.edit1.text;
           Edit2.text := FmTest1.edit2.text;
           Edit2.text := FmTest1.edit2.text;
           FmTest.free;
          end;

    //자...이제 제어권이 넘어온 Test1Form입니다.
    이제 그 보여지는 폼(Test1)의 이벤트중 Create이벤트에서 그리드에 데이타를
    나타내는데 Table이나 Query를 이용 하겟지요....
    거기서  그리드를 클릭합니다
    procedure TFmTest1.DBGrid1DblClick(Sender: TObject);
    begin
       edit1.text := QRY1.fieldbyname('cd_code').asstring;
       edit2.text := QRY1.fieldbyname('cd_code2').asstring;
       edit3.text := QRY1.fieldbyname('cd_code3').asstring;
       close;
    end;