View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002803 | JEDI VCL | 00 JVCL Components | public | 2005-03-26 04:41 | 2005-04-16 02:32 |
Reporter | anonymous | Assigned To | remkobonte | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | |||||
Target Version | Fixed in Version | 3.10 | |||
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 | ||||
Tags | No tags attached. | ||||
|
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
|
|
2005-03-26 11:53
|
|
2005-03-26 11:53
|
|
|
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; |
|
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. |
|
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. |
|
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 ---------------------------------------------------------------------------------------------------- |
|
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? |
|
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
|
|
|
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. |
|
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. |
|
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. |
|
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; |
|
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? |
|
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. |
|
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. |
|
Okay, thanks for the feedback. |
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 |