📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TfrmMain = class(TForm)
BottomPanel: TPanel;
HSplitter: TSplitter;
procedure BottomPanelDockDrop(Sender: TObject; Source: TDragDockObject;
X, Y: Integer);
procedure BottomPanelDockOver(Sender: TObject; Source: TDragDockObject;
X, Y: Integer; State: TDragState; var Accept: Boolean);
procedure BottomPanelGetSiteInfo(Sender: TObject; DockClient: TControl;
var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
procedure BottomPanelUnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
procedure FormCreate(Sender: TObject);
private
public
procedure ShowBottom(Vis:Boolean);
end;
var
frmMain: TfrmMain;
implementation
uses DockWin;
{$R *.dfm}
procedure TfrmMain.BottomPanelDockDrop(Sender: TObject;
Source: TDragDockObject; X, Y: Integer);
begin
ShowBottom(True);
BottomPanel.DockManager.ResetBounds(True);
end;
procedure TfrmMain.BottomPanelDockOver(Sender: TObject;
Source: TDragDockObject; X, Y: Integer; State: TDragState;
var Accept: Boolean);
var
ARect : TRect;
begin
Accept := Source.Control is TfrmDock;
ARect.TopLeft := ClientToScreen(Point(0, ClientHeight*2 div 3));
ARect.BottomRight := ClientToScreen(
Point(ClientWidth, ClientHeight));
Source.DockRect := ARect;
end;
procedure TfrmMain.BottomPanelGetSiteInfo(Sender: TObject;
DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
var CanDock: Boolean);
begin
CanDock := DockClient is TfrmDock;
end;
procedure TfrmMain.ShowBottom(Vis: Boolean);
begin
if Vis then
begin
if frmDock.HostDockSite=BottomPanel then
begin
BottomPanel.Height := ClientHeight div 3;
HSplitter.Visible := True;
BottomPanel.Top :=0;
HSplitter.Top := BottomPanel.Top-5;;
end;
frmDock.Visible := True;
end
else
begin
BottomPanel.Height := 0;
HSplitter.Visible := False;
end;
end;
procedure TfrmMain.BottomPanelUnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
begin
Allow := True;
ShowBottom(False);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
frmDock := TfrmDock.Create(Application);
frmDock.ManualDock(frmMain.BottomPanel,nil,alClient);
frmDock.Visible := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -