diff --git a/examples/dockmanager/elasticsite/felastic.lfm b/examples/dockmanager/elasticsite/felastic.lfm index 272a91bc67..11bd01739e 100644 --- a/examples/dockmanager/elasticsite/felastic.lfm +++ b/examples/dockmanager/elasticsite/felastic.lfm @@ -11,7 +11,7 @@ object DockingSite: TDockingSite Visible = True object pnlLeft: TPanel Left = 0 - Height = 138 + Height = 135 Top = 0 Width = 0 Align = alLeft @@ -27,13 +27,13 @@ object DockingSite: TDockingSite end object splitLeft: TSplitter Left = 0 - Height = 138 + Height = 135 Top = 0 Width = 4 end object pnlRight: TPanel Left = 255 - Height = 138 + Height = 135 Top = 0 Width = 0 Align = alRight @@ -50,7 +50,7 @@ object DockingSite: TDockingSite object pnlBottom: TPanel Left = 0 Height = 1 - Top = 142 + Top = 139 Width = 255 Align = alBottom Caption = 'pnlBottom' @@ -63,7 +63,7 @@ object DockingSite: TDockingSite end object splitRight: TSplitter Left = 251 - Height = 138 + Height = 135 Top = 0 Width = 4 Align = alRight @@ -71,19 +71,19 @@ object DockingSite: TDockingSite end object StatusBar1: TStatusBar Left = 0 - Height = 20 - Top = 143 + Height = 23 + Top = 140 Width = 255 Panels = <> end object Panel1: TPanel Left = 4 - Height = 138 + Height = 135 Top = 0 Width = 247 Align = alClient Caption = 'Client' - ClientHeight = 138 + ClientHeight = 135 ClientWidth = 247 TabOrder = 6 object buNewForm: TButton @@ -100,7 +100,7 @@ object DockingSite: TDockingSite Cursor = crVSplit Left = 0 Height = 4 - Top = 138 + Top = 135 Width = 255 Align = alBottom ResizeAnchor = akBottom diff --git a/examples/dockmanager/elasticsite/felastic.lrs b/examples/dockmanager/elasticsite/felastic.lrs index 3e60fe2161..3f573cbd09 100644 --- a/examples/dockmanager/elasticsite/felastic.lrs +++ b/examples/dockmanager/elasticsite/felastic.lrs @@ -4,29 +4,29 @@ LazarusResources.Add('TDockingSite','FORMDATA',[ 'TPF0'#12'TDockingSite'#11'DockingSite'#4'Left'#3#188#1#6'Height'#3#163#0#3'T' +'op'#3#156#0#5'Width'#3#255#0#8'AutoSize'#9#7'Caption'#6#9'Dock Site'#12'Cli' +'entHeight'#3#163#0#11'ClientWidth'#3#255#0#10'LCLVersion'#6#6'0.9.29'#7'Vis' - +'ible'#9#0#6'TPanel'#7'pnlLeft'#4'Left'#2#0#6'Height'#3#138#0#3'Top'#2#0#5'W' + +'ible'#9#0#6'TPanel'#7'pnlLeft'#4'Left'#2#0#6'Height'#3#135#0#3'Top'#2#0#5'W' +'idth'#2#0#5'Align'#7#6'alLeft'#7'Caption'#6#7'pnlLeft'#5'Color'#7#7'clWhite' +#8'DockSite'#9#11'ParentColor'#8#8'TabOrder'#2#0#10'OnDockDrop'#7#15'pnlLeft' +'DockDrop'#10'OnDockOver'#7#15'pnlLeftDockOver'#13'OnGetSiteInfo'#7#18'pnlLe' +'ftGetSiteInfo'#8'OnUnDock'#7#13'pnlLeftUnDock'#0#0#9'TSplitter'#9'splitLeft' - +#4'Left'#2#0#6'Height'#3#138#0#3'Top'#2#0#5'Width'#2#4#0#0#6'TPanel'#8'pnlRi' - +'ght'#4'Left'#3#255#0#6'Height'#3#138#0#3'Top'#2#0#5'Width'#2#0#5'Align'#7#7 + +#4'Left'#2#0#6'Height'#3#135#0#3'Top'#2#0#5'Width'#2#4#0#0#6'TPanel'#8'pnlRi' + +'ght'#4'Left'#3#255#0#6'Height'#3#135#0#3'Top'#2#0#5'Width'#2#0#5'Align'#7#7 +'alRight'#7'Caption'#6#8'pnlRight'#5'Color'#7#6'clAqua'#8'DockSite'#9#11'Par' +'entColor'#8#8'TabOrder'#2#2#10'OnDockDrop'#7#15'pnlLeftDockDrop'#10'OnDockO' +'ver'#7#15'pnlLeftDockOver'#13'OnGetSiteInfo'#7#18'pnlLeftGetSiteInfo'#8'OnU' +'nDock'#7#13'pnlLeftUnDock'#0#0#6'TPanel'#9'pnlBottom'#4'Left'#2#0#6'Height' - +#2#1#3'Top'#3#142#0#5'Width'#3#255#0#5'Align'#7#8'alBottom'#7'Caption'#6#9'p' + +#2#1#3'Top'#3#139#0#5'Width'#3#255#0#5'Align'#7#8'alBottom'#7'Caption'#6#9'p' +'nlBottom'#8'DockSite'#9#8'TabOrder'#2#3#10'OnDockDrop'#7#15'pnlLeftDockDrop' +#10'OnDockOver'#7#15'pnlLeftDockOver'#13'OnGetSiteInfo'#7#18'pnlLeftGetSiteI' +'nfo'#8'OnUnDock'#7#13'pnlLeftUnDock'#0#0#9'TSplitter'#10'splitRight'#4'Left' - +#3#251#0#6'Height'#3#138#0#3'Top'#2#0#5'Width'#2#4#5'Align'#7#7'alRight'#12 + +#3#251#0#6'Height'#3#135#0#3'Top'#2#0#5'Width'#2#4#5'Align'#7#7'alRight'#12 +'ResizeAnchor'#7#7'akRight'#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2#0#6 - +'Height'#2#20#3'Top'#3#143#0#5'Width'#3#255#0#6'Panels'#14#0#0#0#6'TPanel'#6 - +'Panel1'#4'Left'#2#4#6'Height'#3#138#0#3'Top'#2#0#5'Width'#3#247#0#5'Align'#7 - +#8'alClient'#7'Caption'#6#6'Client'#12'ClientHeight'#3#138#0#11'ClientWidth' + +'Height'#2#23#3'Top'#3#140#0#5'Width'#3#255#0#6'Panels'#14#0#0#0#6'TPanel'#6 + +'Panel1'#4'Left'#2#4#6'Height'#3#135#0#3'Top'#2#0#5'Width'#3#247#0#5'Align'#7 + +#8'alClient'#7'Caption'#6#6'Client'#12'ClientHeight'#3#135#0#11'ClientWidth' +#3#247#0#8'TabOrder'#2#6#0#7'TButton'#9'buNewForm'#4'Left'#2'`'#6'Height'#2 +#20#3'Top'#2#16#5'Width'#2'>'#7'Caption'#6#8'New Form'#7'OnClick'#7#14'buNew' +'FormClick'#8'TabOrder'#2#0#0#0#0#9'TSplitter'#11'splitBottom'#6'Cursor'#7#8 - +'crVSplit'#4'Left'#2#0#6'Height'#2#4#3'Top'#3#138#0#5'Width'#3#255#0#5'Align' + +'crVSplit'#4'Left'#2#0#6'Height'#2#4#3'Top'#3#135#0#5'Width'#3#255#0#5'Align' +#7#8'alBottom'#12'ResizeAnchor'#7#8'akBottom'#0#0#0 ]); diff --git a/examples/dockmanager/elasticsite/felastic.pas b/examples/dockmanager/elasticsite/felastic.pas index 78faea8c0f..68737f2b76 100644 --- a/examples/dockmanager/elasticsite/felastic.pas +++ b/examples/dockmanager/elasticsite/felastic.pas @@ -115,8 +115,8 @@ begin inc(r.Right, w); BoundsRect := r; end else begin - dec(DragTarget.Left, w); - dec(splitRight.Left, w); + DragTarget.Left := DragTarget.Left - w; + splitRight.Left := splitRight.Left - w; end; end else if AutoExpand then begin //enlarge left @@ -138,10 +138,10 @@ begin r := self.BoundsRect; inc(r.Bottom, w); BoundsRect := r; - inc(StatusBar1.Top, w); + StatusBar1.Top := StatusBar1.Top + w; end else begin - dec(splitBottom.Top, w); - dec(DragTarget.Top, w); + splitBottom.Top := splitBottom.Top - w; + DragTarget.Top := DragTarget.Top - w; end; end; EnableAlign; @@ -264,8 +264,8 @@ begin dec(r.Right, wh); BoundsRect := r; //does not resize :-( end else begin - inc(Site.Left, wh); - inc(splitRight.Left, wh); //doesn't help :-( + Site.Left := Site.Left + wh; + splitRight.Left := splitRight.Left + wh; //doesn't help :-( end; end; alBottom: @@ -276,10 +276,10 @@ begin r := BoundsRect; dec(r.Bottom, wh); BoundsRect := r; - dec(splitBottom.Top, wh); - dec(StatusBar1.Top, wh); + splitBottom.Top := splitBottom.Top - wh; + StatusBar1.Top := StatusBar1.Top - wh; end else begin - inc(Site.Top, wh); + Site.Top := Site.Top + wh; splitBottom.Top := Site.Top - splitBottom.Height - 10; end; end; diff --git a/examples/dockmanager/elasticsite/project1.lpi b/examples/dockmanager/elasticsite/project1.lpi index 35e4e2c1cd..0db2d7a833 100644 --- a/examples/dockmanager/elasticsite/project1.lpi +++ b/examples/dockmanager/elasticsite/project1.lpi @@ -34,7 +34,7 @@ - + @@ -49,8 +49,8 @@ - - + + @@ -98,9 +98,7 @@ - - @@ -123,7 +121,7 @@ - + @@ -144,7 +142,7 @@ - + @@ -167,131 +165,143 @@ - + + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - + diff --git a/examples/dockmanager/package/fdockbook.lfm b/examples/dockmanager/package/fdockbook.lfm index 3d052dd6da..2c0c073b59 100644 --- a/examples/dockmanager/package/fdockbook.lfm +++ b/examples/dockmanager/package/fdockbook.lfm @@ -13,7 +13,7 @@ object EasyDockBook: TEasyDockBook OnDockOver = FormDockOver OnGetSiteInfo = FormGetSiteInfo OnUnDock = FormUnDock - LCLVersion = '0.9.27' + LCLVersion = '0.9.29' Visible = True object pnlDock: TPanel Left = 0 diff --git a/examples/dockmanager/package/fdockbook.lrs b/examples/dockmanager/package/fdockbook.lrs index 7a663b2e2f..5233aef49d 100644 --- a/examples/dockmanager/package/fdockbook.lrs +++ b/examples/dockmanager/package/fdockbook.lrs @@ -6,7 +6,7 @@ LazarusResources.Add('TEasyDockBook','FORMDATA',[ +','#1#11'ClientWidth'#3#144#1#8'DockSite'#9#8'DragKind'#7#6'dkDock'#8'OnCrea' +'te'#7#10'FormCreate'#10'OnDockDrop'#7#12'FormDockDrop'#10'OnDockOver'#7#12 +'FormDockOver'#13'OnGetSiteInfo'#7#15'FormGetSiteInfo'#8'OnUnDock'#7#10'Form' - +'UnDock'#10'LCLVersion'#6#6'0.9.27'#7'Visible'#9#0#6'TPanel'#7'pnlDock'#4'Le' + +'UnDock'#10'LCLVersion'#6#6'0.9.29'#7'Visible'#9#0#6'TPanel'#7'pnlDock'#4'Le' +'ft'#2#0#6'Height'#3','#1#3'Top'#2#0#5'Width'#3#144#1#5'Align'#7#8'alClient' +#8'TabOrder'#2#0#14'UseDockManager'#8#0#0#0 ]); diff --git a/examples/dockmanager/package/fdockbook.pas b/examples/dockmanager/package/fdockbook.pas index f4c176896e..41cc31f80d 100644 --- a/examples/dockmanager/package/fdockbook.pas +++ b/examples/dockmanager/package/fdockbook.pas @@ -42,8 +42,8 @@ type procedure MouseMove(Shift: TShiftState; X, Y: Integer); override; public - constructor Create(TheOwner: TComponent); override; Control: TControl; + constructor Create(TheOwner: TComponent); override; end; TTabs = class(TToolBar) @@ -113,15 +113,18 @@ end; procedure TEasyDockBook.FormDockOver(Sender: TObject; Source: TDragDockObject; X, Y: Integer; State: TDragState; var Accept: Boolean); +var + ARect: TRect; begin //unmanaged dock site requires an OnDockOver handler. Accept := True; //this is the default, can be omitted //make DockRect reflect the docking area with Source do begin - DockRect := pnlDock.ClientRect; - DockRect.TopLeft := pnlDock.ClientToScreen(DockRect.TopLeft); - inc(DockRect.Bottom, DockRect.Top); - inc(DockRect.Right, DockRect.Left); + ARect := pnlDock.ClientRect; + ARect.TopLeft := pnlDock.ClientToScreen(ARect.TopLeft); + inc(ARect.Bottom, ARect.Top); + inc(ARect.Right, ARect.Left); + DockRect := ARect; end; end;