When using dual monitor configuration with different resulutions, some components behave incorrectly.
- Take AdvToolPanel and dock it into another AdvToolPanelTab in Runtime (using mouse or with ManualDock). Then move the form to another monitor - and your toolpanel will just disappear. This is because the forthcoming contructor of TToolPanel doesn't set FCalcOpenWidth.
As a workaournd I modified TAdvToolPanelTab.InsertPanel as follows:
with Panels.Add do
begin
Caption := APanel.Caption;
ImageIndex := APanel.ImageIndex;
Panel := APanel;
OpenWidth := APanel.OpenWidth;
UpdatePanels(-1);
FCalcOpenWidth := OpenWidth;
end;
-
When moving a form between monitors, it double scales font size of the panel.
Not sure if this is correct, but removing font size mofification code from TAdvToolPanelTab.ChangeScale fixes the problem. -
You should do something with scaling CaptionHeight. I can see in your code that sometimes you consider DPIScale, but it is not enough. Its real size is not changed and if you e.g. put a control into the panel, it may overlap its caption. See my example.
-
Although I'm never using manual docking with this component, it behaves ugly with 2 monitors, e.g. if your form is on the primary monitor, but you are moving the floating AdvToolPanel on the secondary monitor, it draws a frame on the primary monitor.
demo.zip (1.3 KB)