Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/VCL/Docking    [ Add a report in this area ]  
Report #:  2657   Status: Open
Align cannot be assigned after DockSite
Project:  Delphi Build #:  2
Version:    6.0 Submitted By:   Maris Vasilevskis
Report Type:  Minor failure / Design problem Date Reported:  10/15/2002 3:59:09 AM
Severity:    Infrequently encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All versions Internal Tracking #:   274816
Resolution: None (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (2 Total Ratings)
4.50 out of 5
Total Votes: 10
Description
When true assigned to DockSite, TDockTree is created. If Align is not properly assigned yet (or changed later), TDockTree.FGrabbersOnTop is incorrect.
Steps to Reproduce:

Sample 1 (simple but unnatural)
-------------------------------------------------
Drop Tpanel on form as Panel1. Assign (in OI) Align=alLeft, DockSite=true.
Run. Assign in runtime Panel1.Align:=alTop
You can dock but cannot undock

Sample 2 (more natural)
-------------------------------------
TMyPanel=class(TPanel)...
constructor TMyPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  DockSite:=true;
end;

Install, drop MyPanel on the form, assign (in OI) Align=alTop
Run. You can dock but cannot undock
Workarounds
For my custom components, I can override RequestAlign recreating DockManager every time. However, RequestAlign fires too often
Attachment
None
Comments

None

Server Response from: ETNACODE01