Project JEDI - Issue Tracker
Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002803 [JEDI VCL] 00 JVCL Components minor always 2005-03-26 04:41 2005-04-16 02:32
Reporter anonymous View Status public  
Assigned To remkobonte
Priority normal Resolution fixed  
Status resolved   Product Version
Summary 0002803: JvDockVSNetStyle auto hide bug
Description If you dock form with autohide enabled, and then press the pin button in form caption the pinned form size is 2 pixels wide (Docking it on the left side) I didn't try other sides.

Using latest JVCL3 release or the newer version from CVS of JvDockVSNetStyle.pas 1.54
Additional Information
Tags No tags attached.
Attached Files png file icon pic_1_autohide.png [^] (55,322 bytes) 2005-03-26 11:53
png file icon pic_2_mouse_over.png [^] (65,473 bytes) 2005-03-26 11:53
png file icon pic_3_after_pin_button.png [^] (65,591 bytes) 2005-03-26 11:53
png file icon dck_srvrs.png [^] (112,991 bytes) 2005-03-27 23:43

- Relationships
related to 0002607resolvedobones moreDock painting bugs 

-  Notes
(0006760)
remkobonte (developer)
2005-03-26 05:36

I do not understand the problem. I tried reproducing it with the AdvanceDemo but I did not see anything weird.

Could you elaborate, upload a demo showing the problem or upload a picture showing the problem.
(0006761)
anonymous (viewer)
2005-03-26 11:55

This is the code I'm using.

procedure TfrmCompose.setDefaultLayout;
  procedure VSNetDockForm(AForm: TForm; APanel: TJvDockVSNETPanel; AutoHide: Boolean; Align: TAlign);
  begin
    AForm.ManualDock(APanel, nil, Align);
    APanel.ShowDockPanel(True, AForm);
    if AutoHide then
      APanel.DoAutoHideControl(AForm);
  end;
begin
  dckSrv.LeftDockPanel.Width := 250;

  VSNetDockForm(mab, dckSrv.LeftDockPanel as TJvDockVSNETPanel, True, alNone);
end;
(0006762)
anonymous (viewer)
2005-03-26 15:19

Another note.

This 1.54 is very very unstable I'm when focus should be moved from one docked window to another I'm getting AV's

But not every time.
(0006764)
remkobonte (developer)
2005-03-27 07:19

Could you check if the value of the LRDockWidth (left-right dock width) property of the TJvDockClient component on the "mab" form is very small.

Regarding the AV, I added some nil checks (rev 1.55); but it would help if you provide steps to reproduce the problems. If you want you can send your (stripped) application to me privately, so I can check it.
(0006765)
mvrhov (reporter)
2005-03-27 14:43
edited on: 2005-03-27 15:00

Nope LRDockWidth = 200

Regarding sending you application. It's published under GPL.
It's latest sources are not yet on internet but I can put them there.

The most interesting thing with those exceptions is that they happen in Forms unit.

--edit:
Now I got it (I'm sleepy a bit I have to check this report carefoully tommorow it also might be mine)

Exception class: EAccessViolation
Exception address: 0042BD24
----------------------------------------------------------------------------------------------------
Stack list, generated 28.3.2005 0:35:02
[0042BD24] Classes.TComponent.GetComponentCount (Line 10553, "classes.pas" + 2) + $6
[00404627] System.@HandleAnyException (Line 9625, "system.pas" + 13) + $0
[005A49AE] JvDockControlForm.FindDockBaseControl + $E
[005A4A15] JvDockControlForm.FindDockServer + $1
[0058CD96] JvDockVSNetStyle.HideAllPopupPanel + $2E
[0058F228] JvDockVSNetStyle.TJvDockVSNetStyle.DockClientWindowProc + $148
[005A81A4] JvDockControlForm.TJvDockClient.WindowProc + $20
[006B119C] EmbeddedWB.TEmbeddedWB.FormWndProc (Line 1033, "EmbeddedWB.pas" + 45) + $C
[00482B29] Forms.TCustomForm.Deactivate (Line 4244, "Forms.pas" + 1) + $11
[006B119C] EmbeddedWB.TEmbeddedWB.FormWndProc (Line 1033, "EmbeddedWB.pas" + 45) + $C
[0042050A] Classes.TThreadList.UnlockList (Line 3289, "classes.pas" + 1) + $7
[0043724C] Graphics.FreeMemoryContexts (Line 4962, "Graphics.pas" + 12) + $5
[00463E7C] Controls.TWinControl.MainWndProc (Line 6505, "Controls.pas" + 3) + $9
[0042D274] Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[0049CF78] TB2Hook.CallWndProcHook (Line 91, "TB2Hook.pas" + 15) + $12
[0047CB82] Forms.SendFocusMessage (Line 1541, "Forms.pas" + 2) + $D
[0048271D] Forms.TCustomForm.SetFocusedControl (Line 4148, "Forms.pas" + 49) + $C
[004643C8] Controls.TWinControl.WndProc (Line 6633, "Controls.pas" + 11) + $12
[005724DE] VirtualTrees.TBaseVirtualTree.WndProc (Line 22808, "VirtualTrees.pas" + 32) + $6
[0043724C] Graphics.FreeMemoryContexts (Line 4962, "Graphics.pas" + 12) + $5
[00463E7C] Controls.TWinControl.MainWndProc (Line 6505, "Controls.pas" + 3) + $9
[0042D274] Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[0049CF78] TB2Hook.CallWndProcHook (Line 91, "TB2Hook.pas" + 15) + $12
[0048285B] Forms.TCustomForm.SetWindowFocus (Line 4181, "Forms.pas" + 4) + $9
[004823E2] Forms.TCustomForm.SetActiveControl (Line 4064, "Forms.pas" + 10) + $F
[004824CE] Forms.TCustomForm.FocusControl (Line 4091, "Forms.pas" + 2) + $6
[004677AA] Controls.TWinControl.SetFocus (Line 8158, "Controls.pas" + 3) + $6
[007211E9] fMailView.TfrmMailView.tbPartsClick (Line 859, "fMailView.pas" + 25) + $B
[00492868] TB2Item.TTBCustomItem.Click (Line 1456, "TB2Item.pas" + 22) + $9
[00492706] TB2Item.TTBCustomItem.ClickWndProc (Line 1406, "TB2Item.pas" + 27) + $5
[0042D274] Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[005551D7] VirtualTrees.TVirtualTreeHintWindow.IsHintMsg (Line 6879, "VirtualTrees.pas" + 7) + $15
[0048916A] Forms.TApplication.ProcessMessage (Line 7429, "Forms.pas" + 23) + $4
[004891AF] Forms.TApplication.HandleMessage (Line 7448, "Forms.pas" + 1) + $6
[0048944A] Forms.TApplication.Run (Line 7532, "Forms.pas" + 16) + $3
[0076BEF1] siMail.siMail (Line 144, "D:\Moji_Programi\si.Mail.new\src\siMail.dpr" + 43) + $7
----------------------------------------------------------------------------------------------------
System : Windows XP Professional, Version: 5.1, Build: A28, "Service Pack 2"
Processor: AMD, AMD Athlon(tm) XP 2600+, 1920 MHz MMX
Display : 1280x1024 pixels, 32 bpp
----------------------------------------------------------------------------------------------------

(0006766)
remkobonte (developer)
2005-03-27 15:25
edited on: 2005-03-27 15:26

o Do you have multiple TJvDockServer components in your application?
o Do you have an OnCreate/OnClose handler on forms that have a TJvDockServer?
o Do you alter at run-time the OnCreate/OnClose handlers of forms that have a TJvDockServer?

(0006767)
mvrhov (reporter)
2005-03-27 23:38
edited on: 2005-03-27 23:47

o Do you have multiple TJvDockServer components in your application?
Yes that was the only way to build such interface. (Which is also impossible to save with functions found in docks code)
- Compose window one TJvDockServer
- Main form has "two" TJvDockServers:
  - 1st is on the main form the windows marked with 1 are doced to it by default
  - 2nd is in another form which has it's parent property set to Panel in main form.
o Do you have an OnCreate/OnClose handler on forms that have a TJvDockServer?
Yes
o Do you alter at run-time the OnCreate/OnClose handlers of forms that have a TJvDockServer?
If you mean, that if I assign new procedure to that property then NO.

(0006774)
remkobonte (developer)
2005-03-29 13:19

I've made some changes to fix the AV. Please check them out and give feedback.

For the other stuff I need to see the code of your application; or you must provide steps to reproduce the bugs with the example applications.
(0006793)
mvrhov (reporter)
2005-03-31 08:12
edited on: 2005-03-31 08:13

I'm still getting AVs. But not on focus change. I didn't found the pattern yet. Please give couple of days to prepare app.

(0006845)
mvrhov (reporter)
2005-04-04 05:26
edited on: 2005-04-04 05:43

I'm mailing you url for sources in your sf's e-mail.

It seems that AVs happen when I double click message/contact and sometimes docking component tries to undock window. It doesn't happen everytime. but when it happens it will happen several times in a row.

(0006885)
remkobonte (developer)
2005-04-10 14:26

Change your code to:

procedure TfrmCompose.setDefaultLayout;

procedure VSNetDockForm(AForm: TForm; APanel: TJvDockVSNETPanel; AutoHide: Boolean; Align: TAlign);
  begin
    AForm.ManualDock(APanel, nil, Align);
    APanel.ShowDockPanel(True, AForm);
    if AutoHide then
      APanel.DoAutoHideControl(AForm);
  end;
begin
// dckSrv.RightDockPanel.Width := 250;
  mab.dck.LRDockWidth := 250;

  VSNetDockForm(mab, dckSrv.RightDockPanel as TJvDockVSNETPanel, True, alRight);
  //don't know why but TJvDockVSNETPanel doesn't paint correctly if we don't rezize dock pannel
// dckSrv.RightDockPanel.Width := dckSrv.RightDockPanel.Width + 1;
end;
(0006886)
mvrhov (reporter)
2005-04-10 15:00

I rewrote it like this. Because there is a painting problem otherwise. (Bug already reported)
  dckSrv.RightDockPanel.Width := dckSrv.RightDockPanel.Width + 1;
  if dckSrv.RightDockPanel.Width < 3 then
    dckSrv.RightDockPanel.Width := 0;

But the problem with AV's is still there. So for this one should I file a new bug or we'll use this one?
(0006887)
remkobonte (developer)
2005-04-10 15:40

Are you sure the painting problem still exists with the latest source?

You are correct that the panel size must be 0; the code checks that when you un-autohide the panel, and only resizes the panel to the LRDockWidth when width * height = 0.

I could not reproduce the AV yet, but I have refactored the code of JvDock*.pas a bit so I could have accidently fixed it.

If you want you could create a new bug-report.
(0007014)
mvrhov (reporter)
2005-04-15 12:04

The auto hide painting problem doesn't exist with latest source.
For now it seems that your refactoring realy fixed AV. At least I didn't get any.

But another painting bug which is reported in mantis still exists.
(You can remove resize line from frmMain in sources I've give you to see it.)

For now let's consider this issue closed.
(0007017)
remkobonte (developer)
2005-04-16 02:32

Okay, thanks for the feedback.

- Issue History
Date Modified Username Field Change
2005-03-26 04:41 anonymous New Issue
2005-03-26 05:36 remkobonte Note Added: 0006760
2005-03-26 05:36 remkobonte Status new => feedback
2005-03-26 11:53 anonymous File Added: pic_1_autohide.png
2005-03-26 11:53 anonymous File Added: pic_2_mouse_over.png
2005-03-26 11:53 anonymous File Added: pic_3_after_pin_button.png
2005-03-26 11:55 anonymous Note Added: 0006761
2005-03-26 15:19 anonymous Note Added: 0006762
2005-03-27 07:19 remkobonte Note Added: 0006764
2005-03-27 14:30 mvrhov Issue Monitored: mvrhov
2005-03-27 14:43 mvrhov Note Added: 0006765
2005-03-27 15:00 mvrhov Note Edited: 0006765
2005-03-27 15:25 remkobonte Note Added: 0006766
2005-03-27 15:26 remkobonte Note Edited: 0006766
2005-03-27 23:38 mvrhov Note Added: 0006767
2005-03-27 23:43 mvrhov File Added: dck_srvrs.png
2005-03-27 23:45 mvrhov Note Edited: 0006767
2005-03-27 23:47 mvrhov Note Edited: 0006767
2005-03-29 13:19 remkobonte Note Added: 0006774
2005-03-31 08:12 mvrhov Note Added: 0006793
2005-03-31 08:13 mvrhov Note Edited: 0006793
2005-04-04 05:26 mvrhov Note Added: 0006845
2005-04-04 05:43 mvrhov Note Edited: 0006845
2005-04-10 14:26 remkobonte Note Added: 0006885
2005-04-10 15:00 mvrhov Note Added: 0006886
2005-04-10 15:40 remkobonte Note Added: 0006887
2005-04-15 12:04 mvrhov Note Added: 0007014
2005-04-16 02:31 remkobonte Relationship added related to 0002607
2005-04-16 02:32 remkobonte Status feedback => resolved
2005-04-16 02:32 remkobonte Resolution open => fixed
2005-04-16 02:32 remkobonte Assigned To => remkobonte
2005-04-16 02:32 remkobonte Note Added: 0007017
2007-01-07 05:06 mvrhov Issue End Monitor: mvrhov


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker