View Issue Details

IDProjectCategoryView StatusLast Update
0001509JEDI VCL00 JVCL Componentspublic2004-03-27 04:59
ReporteranonymousAssigned Touser72 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0001509: JVDocking + VSNETStyle fails to load layout correctly
DescriptionSomewhere between current CVS and JVCL Beta1 something has gone awry with the loading of layout under this situation. It appears to correctly save the information to an Inifile or the XMLStorage I'm using, however when running the app again, the loading just results in one of the toolwindows appearing, at a rediculous size (about 1024x768, but not exactly) without fail, and none of the other windows appearing. I can still show the toolwindows and dock them correctly.

Up to JVCL Beta1 this worked fine. I have even downloaded the official JVCL Beta1 release and installed that in place of my CVS copy, and the issue disappeared again. I'm unsure where the issue is introduced, I have tried regressing the JvDocking code files (at least the ones I'm aware of) back to their beta1 forms, and recompiling/installing JVCL but the issue remains.
TagsNo tags attached.

Activities

anonymous

2004-03-21 02:00

viewer   ~0003408

I should note I have tried this on Two different WinXP boxes.

user72

2004-03-21 02:11

  ~0003409

How current is current CVS?

marajin

2004-03-21 02:34

reporter   ~0003411

Last edited: 2004-03-21 02:35

Anonymous CVS of about an hour ago? But it's been going on for several days.

By the way this is my report, Decided I'd better register.

edited on: 03-21-04 02:35

2004-03-21 02:43

 

TestJVDocking.zip (402,605 bytes)

marajin

2004-03-21 02:44

reporter   ~0003412

I have added a file containing source + .exe file that exhibits the same issue. Docking works, the ini file is saved with layout info but it fails to load correctly.

To spawn the dockable toolwindow form hit the last button (One on the extreme right) of the tool bar.

user72

2004-03-21 03:01

  ~0003413

THis is caused by the recent change from using TIniFile to using TMemIniFile. You (we) need to explicitly flush and reload the file. Fix this issue by doing the following:

In JvDockControlForm.pas, SaveDockTreeToFile add:

...

    JvAppStorage.Reload;

    SaveDockTreeToAppStorage(JvAppStorage);
  finally

    JvAppStorage.Flush;

...

and in LoadDockTreeFromFile add:
...
    JvAppStorage.Location := flCustom;
    JvAppStorage.FileName := FileName;

    JvAppStorage.Reload;

...

That should fix it. I will do the same changes in CVS

marajin

2004-03-21 03:31

reporter   ~0003414

Last edited: 2004-03-21 03:35

Hrm, I believe I've made the relevant changes however the same issue continues.

This issue also occurs if you (for example) put an XMLStorage component on your form then in the formshow and formclose events put

FormShow:
LoadDockTreeFromAppStorage(XMLStorage);

FormClose:
SaveDockTreeToAppStorage(XMLStorage);

edited on: 03-21-04 03:35

user72

2004-03-21 08:50

  ~0003420

Last edited: 2004-03-21 09:22

The problem with XMLStorage is a separate issue. It seems it is caused by the fact that FCurrentNode is used to find the path when writing data. This results in the FormNames node containing a single item. To fix, modify in JvAppXMLStorage.pas:

TJvCustomAppXMLStorage.GetNodeFromPath
...
begin
  NodeList := TStringList.Create;
  if StartNode <> nil then
    Node := StartNode
  else
    Node := FXML.Root;

There might be other issues with the XML storage, I haven't checked but this modification fixes this issue at least. You probably need to regenerate the xml file to make it work.

Regarding the changes to the SaveDockTreeToFile it works fine for me.

edited on: 03-21-04 09:22

marajin

2004-03-26 08:19

reporter   ~0003479

Apologies for the delay, work has been keeping me away from this. I tried making the modifications to the inifile storage to no avail, however the XMLStorage does now work. Alas the program now takes anything from 20 to 90 seconds to display. This seems to be coming from the Loading of the dock tree, rather than the XMLStorage loading. I'm updating the CVS code as we speak and will add another note if the issue remains.

marajin

2004-03-26 08:27

reporter   ~0003480

Having updated to the latest CVS and regenerated the XML file again it now correctly saves and loads without taking an excessive amount of time.

user72

2004-03-26 10:44

  ~0003481

So can we close this issue now?

marajin

2004-03-26 10:49

reporter   ~0003485

Yeah. It seems to be all solved now, thanks :)

Issue History

Date Modified Username Field Change
2004-03-21 01:56 anonymous New Issue
2004-03-21 02:00 anonymous Note Added: 0003408
2004-03-21 02:11 user72 Note Added: 0003409
2004-03-21 02:34 marajin Note Added: 0003411
2004-03-21 02:35 marajin Note Edited: 0003411
2004-03-21 02:43 marajin File Added: TestJVDocking.zip
2004-03-21 02:44 marajin Note Added: 0003412
2004-03-21 03:01 user72 Note Added: 0003413
2004-03-21 03:01 user72 Status new => assigned
2004-03-21 03:01 user72 Assigned To => user72
2004-03-21 03:05 user72 Status assigned => feedback
2004-03-21 03:31 marajin Note Added: 0003414
2004-03-21 03:35 marajin Note Edited: 0003414
2004-03-21 08:50 user72 Note Added: 0003420
2004-03-21 09:22 user72 Note Edited: 0003420
2004-03-26 08:19 marajin Note Added: 0003479
2004-03-26 08:27 marajin Note Added: 0003480
2004-03-26 10:44 user72 Note Added: 0003481
2004-03-26 10:49 marajin Note Added: 0003485
2004-03-27 04:59 user72 Status feedback => resolved
2004-03-27 04:59 user72 Resolution open => fixed