View Issue Details

IDProjectCategoryView StatusLast Update
0001847JEDI VCL00 JVCL Componentspublic2004-10-04 11:50
ReporterTaslerAssigned Toremkobonte 
PrioritynormalSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version3.00 BETA 2 
Summary0001847: DotNet Docking - DoAutohideControl, DoUnAutohideControl
DescriptionHi coders

In DotNetDocking is function DoAutoHideControl, sample code is here
TJvDockVSNETPanel(lbDockServer1.LeftDockPanel).DoAutoHideControl(IndexForm);
but there is missing opposite function.

Please add function like DoUNAutohideControl to the DotNetDocking, or modify DoAutohideControl as something like
this
DoAutohideControl(Control : TControl; Visible : Boolean);

It is serious problem work with autohided forms, because several
function doesn't work when form is in Autohide mode. It is almost impossible to return from Autohide mode and stay normally docked programatically (without description of many DotNet docking functions).

Cheers

TagsNo tags attached.

Relationships

duplicate of 0001844 resolved Dot Net Docking 

Activities

user72

2004-06-10 00:38

  ~0004520

To resolve this issue as fast as possible, please provide an example implementation of a DoUnAutohideControl method. Without it, it might be a long time before anyone has time to handle this.

Tasler

2004-06-10 01:12

reporter   ~0004522

I found it!

To unhide it I have to call
    TJvDockVSPopupPanel(SomeForm.HostDockSite).DoAutoHideControl(SomeForm);

user72

2004-06-10 01:34

  ~0004523

Is this to say that the functionality is already there? Can we close this report?

Tasler

2004-06-10 01:47

reporter   ~0004525

hi, some my tips and facts about this issue

Source code of the original function DoAutoHideControl, where is the problem
procedure TJvDockVSNETPanel.DoAutoHideControl(Control: TWinControl);
begin
  if Align = alNone then
    DoShowControl(Control)
  else
    DoHideControl(Control);
end;

Example of use (This code can be used in MSDN2002 example)
(please dock contents form to the right, autohide = off)

when you call DoAutoHideControl like this
TJvDockVSNETPanel(lbDockServer1.RightDockPanel).DoAutoHideControl(ContentsForm);

form is autohided programatically correctly, but only when you call this function at first time. Next time, it will only add new VSPane, and not to unhide this form.

As you can see in DoAutohideControl implementation there is condition.
  if Align = alNone then
    DoShowControl(Control)
  else
    DoHideControl(Control);

This function should toggle between DoShowControl and DoHideControl based upon
current form state, but it doesn't.

In our example will be executed DoHideControl at first and what is bad also in
next time of calling DoAutoHideControl...

Problem is in DoShowControl, it has condition which cause problems.
code snippet:
 if Self is TJvDockVSPopupPanel then
 begin
   do some form unhide code...
 end;

so if you want to run "form unhide code" you have to use:
 TJvDockVSPopupPanel(SomeForm.HostDockSite).DoAutoHideControl(SomeForm)
and NOT
 TJvDockVSNETPanel(lbDockServer1.RightDockPanel).DoAutoHideControl(ContentsForm)

I think it isn't clear and correct, because "hiding" works when you call
 TJvDockVSNETPanel(lbDockServer1.RightDockPanel).DoAutoHideControl(ContentsForm)
and doesn't when you call it again.

So I showed you some way, what do you think peter?
Maybe you have to change DoAutoHideControl, or just simple add DoUnAutoHideControl like this

procedure DoUnAutoHideControl(Control : TControl);
begin
  if (Control.HostDockSite is TJvDockVSPopupPanel) then
    TJvDockVSPopupPanel(Control.HostDockSite).DoAutoHideControl(Control)
end;

obones

2004-08-03 07:34

administrator   ~0004894

Reminder sent to peter3

If you have time to look at this one, I would appreciate it.
Cheers

Olivier

user72

2004-08-04 00:24

  ~0004919

I'm not sure what to do with this. Some testing seems to indicate that the proposed fixes doesn't work 100% either. For example, I often get a window without content when I use the code provided.

I am no expert in the docking components and I'm not able to determine how to resolve this issue. Unless someone provides a working fix, I don't see how I am going to fix it. Sorry I can't be of more help.

remkobonte

2004-10-04 11:50

developer   ~0005296

Duplicate, see 0001844.

Issue History

Date Modified Username Field Change
2004-06-09 21:50 Tasler New Issue
2004-06-10 00:38 user72 Note Added: 0004520
2004-06-10 01:12 Tasler Note Added: 0004522
2004-06-10 01:34 user72 Note Added: 0004523
2004-06-10 01:47 Tasler Note Added: 0004525
2004-06-10 01:53 user72 Status new => feedback
2004-08-03 07:34 obones Note Added: 0004894
2004-08-04 00:24 user72 Note Added: 0004919
2004-10-04 11:49 remkobonte Relationship added duplicate of 0001844
2004-10-04 11:50 remkobonte Duplicate ID 0 => 1844
2004-10-04 11:50 remkobonte Status feedback => resolved
2004-10-04 11:50 remkobonte Fixed in Version => 3.00 BETA 2
2004-10-04 11:50 remkobonte Resolution open => fixed
2004-10-04 11:50 remkobonte Assigned To => remkobonte
2004-10-04 11:50 remkobonte Note Added: 0005296