너무 어렵게하지 마시고요..
일단 Mainform에서 Dialog form 호출은
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Createform(Tform2,form2) ;
form2.showmodal ;
end;
이렇게만 코딩하시고
Dialog form 호출에서 트리뷰에서 더블클릭하면(버튼의 클릭도 되겠죠)
main의 edit1.text에 트리뷰의 이름을 넣으려면
procedure TForm2.TreeView1DblClick(Sender: TObject);
begin
form1.Edit1.Text := TreeView1.Selected.Text ;
close ;
end;
간단하죠 ?
제가 질문내용을 잘 이해를 못해 다른답을 올렸다면 다시 리플 달아 주세요.
수고하세요...
질문맨 wrote:
> main 폼에서 버튼을 클릭 했을 때 ,dialog 폼을 띄우려고 합니다. 그리고 dialog 폼 화면을 닫을 때, main 폼의 EditText 에 dialog 폼에 있는 전역변수 string을 Display 하려고 하는데 잘 안돼서요.. 아시면 좀 부탁드립니다.
>
>
> //main 폼에서 버튼을 클릭했을 때 (실은 main 화면의 child 폼)
> procedure TDoc_history.user_selectClick(Sender: TObject);
> var
> t_DialogFrm : Tuser_select_lov;
>
> begin
> t_DialogFrm := Tuser_select_lov.Create(Application);
> t_DialogFrm.ShowModal; //여기에서도 에러가 남
>
> // modal 로 하면 된다고 해서 이렇게 해 보았음..
> if (t_DialogFrm.ShowModal = mrOK) then
> begin
> Edit1.text := user_select_lov.select_name;
> user_select_lov.TreeView1.Selected.Text;
>
> end;
>
> end;
>
>
>
> //트리뷰에서 노드선택시 선택된 node text 를 main 화면에
> // EditText에 넘겨주려고 함
> // uses 에 main name을 script 해 놓았음.
> procedure Tuser_select_lov.BitBtn1Click(Sender: TObject);
> begin
>
> select_name := node_sel.text ; //select_name는 전역변수
> Doc_history.Edit1.Text := select_name;
> // 이건 main 화면에 텍스트에 직접 넣으려고 시도 했
> // 는데 이것두 잘 안돼요..
> modalresult := mrok;
> Close;
>
> end;
main 폼에서 아래와 같이 test하면 전혀 문제가 없군요...
근데,
현재 mdichild 폼에서 dialog 폼을 띄우려고 하거든요...
혹시 main 이 아닌 mdichild 폼에서 dialog 폼을 아래와 코딩했을 때 문제가 되는지
궁금하군요..
Form2.Showmodal ; 여기서 "Cannot make a visible window modal" error가 나거든요...
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Createform(Tform2,form2) ;
form2.showmodal ;
end;
procedure TForm2.TreeView1DblClick(Sender: TObject);
begin
form1.Edit1.Text := TreeView1.Selected.Text ;
close ;
end;