View Issue Details

IDProjectCategoryView StatusLast Update
0002803JEDI VCL00 JVCL Componentspublic2005-04-16 02:32
ReporteranonymousAssigned Toremkobonte 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version3.10 
Summary0002803: JvDockVSNetStyle auto hide bug
DescriptionIf 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
TagsNo tags attached.

Relationships

related to 0002607 resolvedobones moreDock painting bugs 

Activities

remkobonte

2005-03-26 05:36

developer   ~0006760

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.

2005-03-26 11:53

 

pic_1_autohide.png (55,322 bytes)
pic_1_autohide.png (55,322 bytes)

2005-03-26 11:53

 

pic_2_mouse_over.png (65,473 bytes)
pic_2_mouse_over.png (65,473 bytes)

2005-03-26 11:53

 

anonymous

2005-03-26 11:55

viewer   ~0006761

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;

anonymous

2005-03-26 15:19

viewer   ~0006762

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.

remkobonte

2005-03-27 07:19

developer   ~0006764

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.

mvrhov

2005-03-27 14:43

reporter   ~0006765

Last edited: 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
----------------------------------------------------------------------------------------------------

remkobonte

2005-03-27 15:25

developer   ~0006766

Last edited: 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?

mvrhov

2005-03-27 23:38

reporter   ~0006767

Last edited: 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.

2005-03-27 23:43

 

dck_srvrs.png (112,991 bytes)
dck_srvrs.png (112,991 bytes)

remkobonte

2005-03-29 13:19

developer   ~0006774

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.

mvrhov

2005-03-31 08:12

reporter   ~0006793

Last edited: 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.

mvrhov

2005-04-04 05:26

reporter   ~0006845

Last edited: 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.

remkobonte

2005-04-10 14:26

developer   ~0006885

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;

mvrhov

2005-04-10 15:00

reporter   ~0006886

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?

remkobonte

2005-04-10 15:40

developer   ~0006887

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.

mvrhov

2005-04-15 12:04

reporter   ~0007014

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.

remkobonte

2005-04-16 02:32

developer   ~0007017

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: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