Form2를 Form1의 Panel에 넣기..
Form2를 생성시에 Auto Create Form에서 제거한다.
제거방법은 델파이 메뉴의 Project->Options->Forms Tab에서
Auto Create Forms쪽에 있는 Form2를 Available Forms 쪽으로 보낸다.
'>' 버튼이용
이렇게하면 Form2가 Form1의 Panel1 내부에서만 움직일수 있습니다.
Form2를 움직이지 못하도록 하기위하여 Form2의 Title Bar를 삭제합니다.
Title Bar 삭제 함수
function RemoveTitleBar(hWindow: THANDLE; Hide: boolean = True): DWORD;
var
R: TRect;
begin
Result := GetWindowLong(hWindow, GWL_STYLE);
if (Hide) then
Result := Result and not WS_CAPTION
else
Result := Result or WS_CAPTION;
GetClientRect(hWindow, R);
SetWindowLong(hWindow, GWL_STYLE, Result);
AdjustWindowRect(R, Result, boolean(GetMenu(hWindow)));
SetWindowPos(hWindow, 0, 0, 0, (R.Right - R.Left), (R.Bottom - R.Top),
SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED or SWP_NOSENDCHANGING);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Form2를 생성
Application.CreateForm(TForm2, Form2);
// Form2의 parent를 Form1의 Panel1로 설정
Form2.Parent := Form1.Panel1;
// Form2의 위치를 Form1의 Panel1의 0, 0으로 설정
Form2.Left := 0;
Form2.Top := 0;
// Form2 Show
Form2.Show;
// Form2를 움직이지 못하게 하기위하여 Title Bar를 삭제한다.
RemoveTitleBar(Handle);
end;
안녕하세요.. 궁금한 점이 있어서 이렇게 질문 올립니다. Form1에 Button1~Button4가 존재합니다. Button1을 Click시에 Form2.show되어진다면 이 Form2을 Form1의 패널에 움직이지 않게 넣으려구 합니다. 어떻게 처리를 해야하는지 좀 막...
Form2를 Form1의 Panel에 넣기..
Form2를 생성시에 Auto Create Form에서 제거한다.
제거방법은 델파이 메뉴의 Project->Options->Forms Tab에서
Auto Create Forms쪽에 있는 Form2를 Available Forms 쪽으로 보낸다.
'>' 버튼이용
이렇게하면 Form2가 Form1의 Panel1 내부에서만 움직일수 있습니다.
Form2를 움직이지 못하도록 하기위하여 Form2의 Title Bar를 삭제합니다.
Title Bar 삭제 함수
function RemoveTitleBar(hWindow: THANDLE; Hide: boolean = True): DWORD;
var
R: TRect;
begin
Result := GetWindowLong(hWindow, GWL_STYLE);
if (Hide) then
Result := Result and not WS_CAPTION
else
Result := Result or WS_CAPTION;
GetClientRect(hWindow, R);
SetWindowLong(hWindow, GWL_STYLE, Result);
AdjustWindowRect(R, Result, boolean(GetMenu(hWindow)));
SetWindowPos(hWindow, 0, 0, 0, (R.Right - R.Left), (R.Bottom - R.Top),
SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED or SWP_NOSENDCHANGING);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Form2를 생성
Application.CreateForm(TForm2, Form2);
// Form2의 parent를 Form1의 Panel1로 설정
Form2.Parent := Form1.Panel1;
// Form2의 위치를 Form1의 Panel1의 0, 0으로 설정
Form2.Left := 0;
Form2.Top := 0;
// Form2 Show
Form2.Show;
// Form2를 움직이지 못하게 하기위하여 Title Bar를 삭제한다.
RemoveTitleBar(Handle);
end;