Delphi7에서 도킹 기능 구현하기 Delphi7을 사용하여 응용 프로그램 시스템을 개발할 때 메인 창에 하위 창을 도킹하는 기능을 사용해야 하는 경우가 종종 있습니다. 이 부분이 익숙하지 않은 경우 일반적으로 CSDN 및 기타 웹 사이트에 가서 관련된 다양한 컨트롤을 찾거나, 델파이에 기본으로 제공되는 도킹 루틴을 참고하여 간단하게 사용할 수 있는 방법을 소개하겠습니다. 1. 메인 윈도우에 4개의 패널과 4개의 스플리터를 추가하고 상하좌우 정렬을 설정합니다.
2. 4개 패널의 DockSite 속성을 True로 설정합니다.
3. 다음과 같이 왼쪽 및 오른쪽 패널에 OnDockDrop, OnDockOver 및 OnUnDock 이벤트를 추가합니다.
PROcedure TfrmMain.pnlLeftUnDock(송신자: TObject; 클라이언트: TControl;
NewTarget: TWinControl; var 허용: 부울);
시작하다
if (TPanel로 보낸 사람).VisibleDockClientCount = 1 then
시작하다
(TPanel로 보낸 사람).Width := 1;
끝 ;
end ; 프로시저 TfrmMain.pnlLeftDockDrop(Sender: TObject;
소스: TDragDockObject X, Y: 정수);
시작하다
(TPanel로 보낸 사람).Width := max(source.Control.UndockWidth,(TPanel로 보낸 사람).Width);
end ; 프로시저 TfrmMain.pnlLeftDockOver(Sender: TObject;
소스: TDragDockObject; X, Y: 정수: TDragState;
varAccept: 부울);
시작하다
State = dsDragEnter 이면
시작하다
(TPanel로 보낸 사람).Width := max(Source.Control.UndockWidth, (TPanel로 보낸 사람).Width);
끝
또 다른
시작하다
State = dsDragLeave 이면
시작하다
(TPanel로 보낸 사람).Width := 1;
끝;
끝;
끝;
왼쪽 패널과 오른쪽 패널은 동일한 코드로 이벤트 코드에 응답합니다. 4. 다음과 같이 상단 패널과 하단 패널에 OnDockDrop, OnDockOver, OnUnDock 이벤트를 추가합니다.
프로시저 TfrmMain.pnlBottomUnDock(송신자: TObject; 클라이언트: TControl;
NewTarget: TWinControl; var 허용: 부울);
시작하다
if (TPanel로 보낸 사람).DockClientCount = 1 then
시작하다
(TPanel로 보낸 사람).Height := 1;
끝;
끝; 프로시저 TfrmMain.pnlBottomDockDrop(보내는 사람: TObject;
소스: TDragDockObject X, Y: 정수);
시작하다
(TPanel로 보낸 사람).Height := max(source.Control.UndockHeight,(TPanel로 보낸 사람).Height);
end ; 프로시저 TfrmMain.pnlBottomDockOver(Sender: TObject;
소스: TDragDockObject; X, Y: 정수: TDragState;
varAccept: 부울);
시작하다
State = dsDragEnter 이면
시작하다
(TPanel로 보낸 사람).Height := max(Source.Control.UndockHeight, (TPanel로 보낸 사람).Height);
끝
또 다른
시작하다
State = dsDragLeave 이면
시작하다
(TPanel로 보낸 사람).Height := 1;
끝;
끝;
끝;
상단 패널과 하단 패널은 동일한 코드로 이벤트 코드에 응답합니다. 5. 기본 양식에 도킹할 새 양식을 만듭니다.
6. 새 형식 DragKind를 dkDock으로 설정하고 DragMode를 dmAutomatic으로 설정합니다.
7. 새 양식의 OnClose 이벤트에 다음 코드를 추가합니다.
self.HostDockSite <> nil 인 경우
시작하다
self.ManualDock(nil);
끝 ;
작업 := caHide;
8. 새로운 양식이 자동으로 생성되지 않도록 설정하세요.
9. 기본 크리에이티브 본문에 새 양식을 생성하고 표시합니다. 기억하세요: ShowModal이 아닌 Show를 사용하세요. 이 방법은 그다지 표준화되어 있지 않습니다. 보다 자세한 제어가 필요한 경우 Delphi의 Docking 예제를 참조하는 것이 가장 좋습니다. 이 예제에서 Panel을 TabControl 또는 PageConrol로 변경하면 더 나은 결과를 얻을 수 있지만 코드를 약간 변경해야 합니다. 관심 있는 친구는 시도해 볼 수 있습니다.