dockmanager example: fixed splitter appearance and orientation for new notebook

git-svn-id: trunk@22721 -
This commit is contained in:
dodi 2009-11-23 13:31:15 +00:00
parent ffaf004a69
commit c91bb602d6
6 changed files with 235 additions and 126 deletions

View File

@ -8,7 +8,7 @@
<TargetFileExt Value=".exe"/>
<Icon Value="0"/>
<UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="2"/>
<ActiveEditorIndexAtStart Value="4"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
@ -33,14 +33,14 @@
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="32">
<Units Count="34">
<Unit0>
<Filename Value="MakeSite.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="MakeSite"/>
<CursorPos X="51" Y="18"/>
<TopLine Value="1"/>
<UsageCount Value="74"/>
<UsageCount Value="80"/>
</Unit0>
<Unit1>
<Filename Value="fmastersite.pas"/>
@ -48,31 +48,28 @@
<ComponentName Value="MasterSite"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="fMasterSite"/>
<CursorPos X="17" Y="35"/>
<TopLine Value="8"/>
<CursorPos X="1" Y="51"/>
<TopLine Value="23"/>
<EditorIndex Value="0"/>
<UsageCount Value="74"/>
<UsageCount Value="80"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\package\umakesite.pas"/>
<UnitName Value="uMakeSite"/>
<CursorPos X="11" Y="108"/>
<TopLine Value="77"/>
<EditorIndex Value="2"/>
<UsageCount Value="71"/>
<Bookmarks Count="1">
<Item0 X="7" Y="173" ID="1"/>
</Bookmarks>
<CursorPos X="1" Y="126"/>
<TopLine Value="105"/>
<EditorIndex Value="3"/>
<UsageCount Value="74"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\..\..\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="15" Y="1783"/>
<TopLine Value="1760"/>
<EditorIndex Value="9"/>
<UsageCount Value="36"/>
<CursorPos X="15" Y="1757"/>
<TopLine Value="1733"/>
<EditorIndex Value="7"/>
<UsageCount Value="39"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
@ -96,8 +93,8 @@
<Filename Value="..\..\..\..\..\lazarus\fpc\2.2.4\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="14" Y="1556"/>
<TopLine Value="1533"/>
<EditorIndex Value="11"/>
<UsageCount Value="11"/>
<EditorIndex Value="10"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit6>
<Unit7>
@ -109,9 +106,7 @@
<UnitName Value="fClientForm"/>
<CursorPos X="10" Y="38"/>
<TopLine Value="12"/>
<EditorIndex Value="8"/>
<UsageCount Value="74"/>
<Loaded Value="True"/>
<UsageCount Value="80"/>
</Unit7>
<Unit8>
<Filename Value="..\..\..\lcl\include\winapih.inc"/>
@ -134,30 +129,30 @@
<Unit11>
<Filename Value="..\package\easydocksite.pas"/>
<UnitName Value="EasyDockSite"/>
<CursorPos X="4" Y="45"/>
<TopLine Value="24"/>
<CursorPos X="1" Y="364"/>
<TopLine Value="341"/>
<EditorIndex Value="4"/>
<UsageCount Value="35"/>
<UsageCount Value="38"/>
<Bookmarks Count="1">
<Item0 X="1" Y="1537" ID="2"/>
<Item0 X="3" Y="365" ID="2"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\lcl\forms.pp"/>
<UnitName Value="Forms"/>
<CursorPos X="15" Y="577"/>
<TopLine Value="553"/>
<EditorIndex Value="3"/>
<UsageCount Value="33"/>
<CursorPos X="17" Y="532"/>
<TopLine Value="509"/>
<EditorIndex Value="1"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit12>
<Unit13>
<Filename Value="..\..\..\lcl\include\customform.inc"/>
<CursorPos X="16" Y="2424"/>
<TopLine Value="2422"/>
<EditorIndex Value="15"/>
<UsageCount Value="16"/>
<CursorPos X="17" Y="1593"/>
<TopLine Value="1571"/>
<EditorIndex Value="14"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
@ -191,10 +186,10 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="fFloatingSite"/>
<CursorPos X="3" Y="22"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="33"/>
<CursorPos X="9" Y="107"/>
<TopLine Value="64"/>
<EditorIndex Value="2"/>
<UsageCount Value="36"/>
<Loaded Value="True"/>
</Unit18>
<Unit19>
@ -203,10 +198,10 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="fDockBook"/>
<CursorPos X="5" Y="96"/>
<TopLine Value="73"/>
<EditorIndex Value="5"/>
<UsageCount Value="31"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="6"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit19>
<Unit20>
@ -214,9 +209,7 @@
<UnitName Value="EasyDockMgr"/>
<CursorPos X="7" Y="10"/>
<TopLine Value="1"/>
<EditorIndex Value="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
</Unit20>
<Unit21>
<Filename Value="..\package\fpageframe.pas"/>
@ -254,176 +247,197 @@
<Filename Value="..\..\..\..\..\lazarus\fpc\2.2.4\source\rtl\objpas\classes\compon.inc"/>
<CursorPos X="3" Y="161"/>
<TopLine Value="158"/>
<EditorIndex Value="12"/>
<UsageCount Value="11"/>
<EditorIndex Value="11"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit25>
<Unit26>
<Filename Value="..\..\..\lcl\include\control.inc"/>
<CursorPos X="3" Y="540"/>
<TopLine Value="525"/>
<EditorIndex Value="14"/>
<UsageCount Value="21"/>
<EditorIndex Value="13"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</Unit26>
<Unit27>
<Filename Value="..\..\..\lcl\include\wincontrol.inc"/>
<CursorPos X="1" Y="5215"/>
<TopLine Value="5208"/>
<EditorIndex Value="10"/>
<UsageCount Value="21"/>
<CursorPos X="3" Y="6514"/>
<TopLine Value="6468"/>
<EditorIndex Value="9"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</Unit27>
<Unit28>
<Filename Value="..\..\..\lcl\include\dragdock.inc"/>
<CursorPos X="10" Y="21"/>
<TopLine Value="1"/>
<EditorIndex Value="17"/>
<UsageCount Value="21"/>
<EditorIndex Value="16"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</Unit28>
<Unit29>
<Filename Value="..\..\..\lcl\include\dragmanager.inc"/>
<CursorPos X="1" Y="730"/>
<TopLine Value="687"/>
<EditorIndex Value="13"/>
<UsageCount Value="16"/>
<EditorIndex Value="12"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
</Unit29>
<Unit30>
<Filename Value="..\..\..\lcl\include\application.inc"/>
<CursorPos X="1" Y="2074"/>
<TopLine Value="2051"/>
<EditorIndex Value="16"/>
<UsageCount Value="16"/>
<EditorIndex Value="15"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
<Filename Value="..\..\..\lcl\include\toolbutton.inc"/>
<CursorPos X="1" Y="700"/>
<TopLine Value="677"/>
<EditorIndex Value="6"/>
<UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit31>
<Unit32>
<Filename Value="..\..\..\lcl\include\customcontrol.inc"/>
<CursorPos X="17" Y="113"/>
<TopLine Value="92"/>
<EditorIndex Value="8"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit32>
<Unit33>
<Filename Value="..\package\zoneheader.inc"/>
<CursorPos X="41" Y="168"/>
<TopLine Value="145"/>
<EditorIndex Value="5"/>
<UsageCount Value="10"/>
<Bookmarks Count="1">
<Item0 X="41" Y="168" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit33>
</Units>
<JumpHistory Count="29" HistoryIndex="28">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="209" Column="1" TopLine="180"/>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="249" Column="23" TopLine="244"/>
</Position1>
<Position2>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="208" Column="16" TopLine="184"/>
<Filename Value="..\package\ffloatingsite.pas"/>
<Caret Line="107" Column="9" TopLine="64"/>
</Position2>
<Position3>
<Filename Value="fmastersite.pas"/>
<Caret Line="35" Column="17" TopLine="8"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="555" Column="29" TopLine="526"/>
</Position3>
<Position4>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="263" Column="1" TopLine="221"/>
<Caret Line="65" Column="28" TopLine="38"/>
</Position4>
<Position5>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="151" Column="19" TopLine="121"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="143" Column="20" TopLine="124"/>
</Position5>
<Position6>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="177" Column="19" TopLine="139"/>
<Filename Value="fmastersite.pas"/>
<Caret Line="50" Column="17" TopLine="15"/>
</Position6>
<Position7>
<Filename Value="..\..\..\lcl\include\control.inc"/>
<Caret Line="3989" Column="27" TopLine="3957"/>
<Filename Value="fmastersite.pas"/>
<Caret Line="51" Column="17" TopLine="15"/>
</Position7>
<Position8>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="177" Column="19" TopLine="139"/>
<Filename Value="fmastersite.pas"/>
<Caret Line="50" Column="17" TopLine="15"/>
</Position8>
<Position9>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="86" Column="15" TopLine="80"/>
<Filename Value="fmastersite.pas"/>
<Caret Line="57" Column="17" TopLine="15"/>
</Position9>
<Position10>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="163" Column="31" TopLine="155"/>
<Caret Line="253" Column="23" TopLine="232"/>
</Position10>
<Position11>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="73" Column="1" TopLine="60"/>
<Caret Line="62" Column="96" TopLine="39"/>
</Position11>
<Position12>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="49" Column="1" TopLine="28"/>
<Caret Line="256" Column="18" TopLine="237"/>
</Position12>
<Position13>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="150" Column="16" TopLine="133"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="90" Column="15" TopLine="66"/>
</Position13>
<Position14>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="153" Column="14" TopLine="130"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="87" Column="12" TopLine="74"/>
</Position14>
<Position15>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="154" Column="20" TopLine="131"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="98" Column="26" TopLine="74"/>
</Position15>
<Position16>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="65" Column="6" TopLine="41"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="143" Column="30" TopLine="119"/>
</Position16>
<Position17>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="155" Column="43" TopLine="132"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="275" Column="36" TopLine="251"/>
</Position17>
<Position18>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="190" Column="1" TopLine="144"/>
<Filename Value="..\package\fdockbook.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position18>
<Position19>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="155" Column="25" TopLine="132"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="565" Column="1" TopLine="598"/>
</Position19>
<Position20>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="156" Column="1" TopLine="111"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="228" Column="14" TopLine="206"/>
</Position20>
<Position21>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="177" Column="21" TopLine="148"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="363" Column="17" TopLine="339"/>
</Position21>
<Position22>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="50" Column="60" TopLine="19"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="371" Column="1" TopLine="339"/>
</Position22>
<Position23>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="68" Column="23" TopLine="53"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="380" Column="23" TopLine="339"/>
</Position23>
<Position24>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="76" Column="69" TopLine="53"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="786" Column="40" TopLine="763"/>
</Position24>
<Position25>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="87" Column="38" TopLine="64"/>
<Filename Value="..\package\zoneheader.inc"/>
<Caret Line="168" Column="41" TopLine="143"/>
</Position25>
<Position26>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="178" Column="24" TopLine="138"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="169" Column="7" TopLine="148"/>
</Position26>
<Position27>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="52" Column="17" TopLine="30"/>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="228" Column="14" TopLine="205"/>
</Position27>
<Position28>
<Filename Value="..\package\umakesite.pas"/>
<Caret Line="181" Column="8" TopLine="144"/>
<Filename Value="..\package\zoneheader.inc"/>
<Caret Line="168" Column="43" TopLine="145"/>
</Position28>
<Position29>
<Filename Value="..\package\easydocksite.pas"/>
<Caret Line="288" Column="19" TopLine="265"/>
<Filename Value="fmastersite.pas"/>
<Caret Line="51" Column="1" TopLine="23"/>
</Position29>
<Position30>
<Filename Value="fmastersite.pas"/>
<Caret Line="52" Column="1" TopLine="23"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>

View File

@ -9,7 +9,7 @@ object MasterSite: TMasterSite
OnCreate = FormCreate
LCLVersion = '0.9.29'
object buDump: TButton
Left = 10
Left = 144
Height = 25
Top = 10
Width = 75
@ -17,4 +17,30 @@ object MasterSite: TMasterSite
OnClick = buDumpClick
TabOrder = 0
end
object buCreateForm: TButton
Left = 10
Height = 25
Top = 10
Width = 75
Caption = 'buCreateForm'
OnClick = buCreateFormClick
TabOrder = 1
end
object buSave: TButton
Left = 8
Height = 25
Top = 48
Width = 75
Caption = 'buSave'
TabOrder = 2
end
object buRestore: TButton
Left = 96
Height = 25
Top = 48
Width = 75
Caption = 'buRestore'
OnClick = buRestoreClick
TabOrder = 3
end
end

View File

@ -12,10 +12,15 @@ uses
type
TMasterSite = class(TForm)
buDump: TButton;
buCreateForm: TButton;
buSave: TButton;
buRestore: TButton;
procedure buCreateFormClick(Sender: TObject);
procedure buDumpClick(Sender: TObject);
procedure buRestoreClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
ms: TMemoryStream;
public
DockMaster: TDockMaster;
end;
@ -30,11 +35,23 @@ uses
{ TMasterSite }
procedure TMasterSite.buCreateFormClick(Sender: TObject);
begin
DockMaster.CreateDockable('', True);
end;
procedure TMasterSite.buDumpClick(Sender: TObject);
begin
DockMaster.DumpSites;
end;
procedure TMasterSite.buRestoreClick(Sender: TObject);
begin
if ms = nil then
ms := TMemoryStream.Create;
DockMaster.LoadFromStream(ms);
end;
procedure TMasterSite.FormCreate(Sender: TObject);
begin
DockMaster := TDockMaster.Create(self); //(Application)?

View File

@ -59,7 +59,7 @@ LCL TODO:
//depending on widgetset or patched LCL
{.$DEFINE NoDrop} //applied DoDiPatch1?
{.$DEFINE PageFrame} //problem: notebook frame cannot Release itself
{$DEFINE replace} //using ReplaceDockedControl?
{.$DEFINE replace} //using ReplaceDockedControl?
interface
@ -360,6 +360,9 @@ begin
FHeader := TEasyDockHeader.Create;
FSplitter := TEasySplitter.Create(nil);
FSplitter.Beveled := True;
//FSplitter.BorderStyle := bsSingle; //border does NOT react!
//FSplitter.BorderWidth := 1;
FSplitter.Parent := ADockSite;
FSplitter.OnMoved := @SplitterMoved;
FSplitter.Align := alNone;
@ -561,6 +564,7 @@ begin
FReplacingControl := NoteBook; //ignore insert (see above)
NoteBook.ManualDock(FDockSite); //move into DockClients[]
DropZone.ChildControl := NoteBook; //put into the zone
NoteBook.DockOrientation := DropCtl.DockOrientation; //strange bug?
r := DropZone.GetPartRect(zpClient);
NoteBookAdd(NoteBook, DropCtl); //put the original control into the notebook
NoteBook.BoundsRect := r;

View File

@ -27,9 +27,15 @@ into a form, before it can be dragged and docked by dragging the form.
Apply ToolButtonAutoSizeAlign.patch to improve the appearance and behaviour
of the toolbar buttons.
ToDo:
- Check use of ToggleBox instead of TToolButton
- Load/Store layout
+ Update parent on un/dock: Caption and DockHeaders!
Problem:
Disallow undocking/floating of a NOT docked dockbook.
Fix: flag StayDocked.
*)
(* Applications
@ -58,7 +64,7 @@ interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ComCtrls, ExtCtrls;
ComCtrls, ExtCtrls, StdCtrls;
type
TTabButton = class(TToolButton)
@ -126,7 +132,6 @@ procedure TEasyDockBook.FormDockDrop(Sender: TObject; Source: TDragDockObject;
var
btn: TTabButton;
begin
//Source.DragTarget := pnlDock; ?
Source.Control.Parent := pnlDock; //overwrite DoAddDockClient behaviour
btn := TTabButton.Create(Tabs);
@ -228,8 +233,13 @@ begin
//Release; //Close;
PostMessage(Self.Handle, WM_CLOSE, 0, 0);
end;
if (HostDockSite is TFloatingSite) then
TFloatingSite(HostDockSite).UpdateCaption(nil);
//update the host dock site and its DockManager
if HostDockSite <> nil then begin
if (HostDockSite is TFloatingSite) then
TFloatingSite(HostDockSite).UpdateCaption(nil);
if HostDockSite.DockManager <> nil then
HostDockSite.Invalidate;
end;
end;
function TEasyDockBook.GetControlTab(AControl: TControl): TTabButton;

View File

@ -1,6 +1,11 @@
unit uMakeSite;
(* Create elastic dock sites within a form, make forms dockable.
Owners:
The DockMaster can own all floating forms, for easy enumeration.
The DockMaster can own all dock grips, for easy detection of the dockable forms.
The owner of the dockable forms is responsible for creating or finding dockable forms?
Problems:
Forms are not (easily) dockable on all platforms,
@ -16,6 +21,7 @@ Default floating sites are owned by Application,
{$mode objfpc}{$H+}
{$DEFINE ownSites} //floating sites owned by TDockMaster?
{$DEFINE ownGrips} //docking grips owned by TDockMaster?
interface
@ -41,7 +47,9 @@ type
public
end;
//the owner of all docksites (if ownSites is defined)
(* The owner of all docksites (if ownSites is defined),
and of all dockable window grips (if ownGrips is defined)
*)
TDockMaster = class(TComponent)
protected //event handlers
procedure DockHandleMouseMove(Sender: TObject; Shift: TShiftState;
@ -51,8 +59,10 @@ type
public
Factory: TComponent; //generic owner
procedure AddElasticSites(AForm: TCustomForm; Sides: sDockSides);
function CreateDockable(const AName: string; fMultiInst: boolean): TForm;
function CreateDockable(const AName: string; fMultiInst: boolean; fWrap: boolean = True): TForm;
procedure DumpSites;
procedure LoadFromStream(Stream: TStream);
procedure SaveToStream(Stream: TStream);
end;
implementation
@ -125,7 +135,7 @@ begin
end;
function TDockMaster.CreateDockable(const AName: string;
fMultiInst: boolean): TForm;
fMultiInst: boolean; fWrap: boolean): TForm;
var
basename, instname: string;
i, l, instno: integer;
@ -195,10 +205,12 @@ begin
//make it dockable
Result.DragKind := dkDock;
Result.OnEndDock := @FormEndDock; //float into default host site
end;
if fWrap then begin
//wrap into dock site
Site := WrapDockable(Result);
//create a docking handle - should become a component?
img := TImage.Create(Result);
img := TImage.Create(Result); //we could own the img, and be notified when its parent becomes nil
img.Parent := Result;
img.Align := alNone;
img.Anchors := [akTop, akRight];
@ -233,6 +245,31 @@ begin
end;
end;
procedure TDockMaster.LoadFromStream(Stream: TStream);
var
ctl, pre: TControl;
site: TFloatingSite;
procedure MakeForm;
begin
pre := ctl;
ctl := CreateDockable('', True, False);
end;
begin
//Test0;
site := TFloatingSite.Create(self);
MakeForm; ctl.ManualDock(site, nil, alClient);
MakeForm; ctl.ManualDock(site, pre, alRight);
MakeForm; ctl.ManualDock(site, pre, alBottom);
//MakeForm; ctl.ManualDock(site, pre, alCustom);
end;
procedure TDockMaster.SaveToStream(Stream: TStream);
begin
end;
function TDockMaster.WrapDockable(Client: TControl): TFloatingSite;
var
Site: TForm absolute Result;
@ -335,6 +372,7 @@ begin
s := OrientString[ctl.DockOrientation];
DebugLn(' Client=%s@%s (%d,%d)[%d,%d]', [SiteName(ctl), s,
ctl.Left, ctl.Top, ctl.Width, ctl.Height]);
//if ctl is TFloatingSite then
end;
end else begin
ctl := Site;