우선 메일로 질문하는 일은 좀^^
여하튼 보내주신 소스대로 간단히 정리 한 것 입니다..
From 류..
---------
질문 1.
실행 프로그램 list에서 선택된 MDI CHILD FORM을 CREATE하려고 합니다.
그런데 이것을 함수로 만들어서 코드를 줄이려고 하는데 어떻게 하면
좋을까요?
parameter로 전달될 변수를 어떻게 해야 하나요?
답변 1.
보내주신 소스처럼 하는 방식외에는 저도 모르겠습니다.
폼형태가 어자피 틀린 것을 생성해야 하기 때문에
방법은 일단 제 상식선에서 없습니다.
질문 2.
sale102_f와 sale102_f라는 두개의 mdi child form을 create한후에
수정/저장/삭제 등과 같은 메뉴나 버튼을 선택했을때,
만약 두개의 mdi child form이 활성화 되어 있다면
focus를 갖인 active child form에서만 message를 전달 받아
event를 처리하려고 하는데
잘되지 않네요?
어떤 방법을 써야 하나요?
답변 2.
A. Main form
procedure TfmMain.Button1Click(Sender: TObject);
begin
PostMessage(ActiveMDIChild.HANDLE, WM_User+1, TButton(Sender).Tag, 0);
end;
B. Sub Form1
type
TForm1 = class(TForm)
private
{ Private declarations }
Procedure WMUser(Var Msg:TMessage); Message WM_User+1;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Procedure TForm1.WMUser(Var Msg:TMessage);
Begin
Caption:= Format('WParam : %d, WParam : %d', [Msg.WParam, Msg.LParam]);
End;
B. Sub Form2
type
TForm2 = class(TForm)
private
{ Private declarations }
Procedure WMUser(Var Msg:TMessage); Message WM_User+1;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
Procedure TForm2.WMUser(Var Msg:TMessage);
Begin
Caption:= Format('WParam : %d, WParam : %d', [Msg.WParam, Msg.LParam]);
End;
질문 3.
mdi form에서 mdi child 를 움직이다보면 scrollbar가 생기는데
scrollbar가 않생기게 할 수 없나요.
mainapp_f.HorzScrollBar.Visible := false;
로 설정해도 scrollbar가 나오단데....
답변 3.
편법으로 MDI Parent에 TPanel을 내려 놓고 MDI Child를 그 판넬 위에
올리는 방법이 있긴 합니다. 하지만 생각처럼 잘 움직이지는 않습니다.
|