Forum Replies Created
-
AuthorPosts
-
eledhParticipant
Hello,
as far I know and everytime I have checked the logs, it seems that it crashes during closing (hiding) form.
Also as you can see it here in this log:
…..
[0009EC4A] Forms.TCustomForm.Close (Line 5607, “Forms.pas”)
[0030E067] _clientforwardtest.TForm40.Timer3Timer (Line 111, “_clientforwardtest.pas”)
….
In this case it happend during automatic closing of one popup window, it was closed by timer.
But this error occured also for another forms/windows, closed manually by button.
Just guessing, could be by caused by too quick of form closing? Extended borders, Animations are enabled – showing/hiding, could it be that form is closed during the animation? But it is in one gui thread.
Unfortunatelly I was not able to identify the specific moment or situation what it is crashing.
It is IM application, main window, chat window(s) (with blinking) and autoclosing notification popups and “bubles”. It is crashing quite randomly – usually without user action, so when popup is showing/hidding itself.
eledhParticipantHello,
it is very simple to reproduce it. Currently tested on version 8.53
Just create a new form application, put SkinManager and SkinProvider there, add and set “Mint” as internal skin, enable extended borders. Run it.
Open properties of this application in Sysinternal's Process Explorer. Check count of GDI handles in performance tab.
Just minimize the main form (form1) and restore it again from taskbar. Count of GDI handles is increased. Minimize – restore again, and count of GDI handles is higher again.
Mint skin + ext borders = GDI handles leak
Mint and no ext borders = OK
Beijing Ext + ext borders = OK
Beijing Ext and no ext borders = OK
I did not test all skins, but currently I only know that this problem occurs with Mint skin and ext borders enabled.
eledhParticipantHello,
I am testing the new 8.53 version for 2 days and it seems to be working properly, at least no crash so far. Thanks!
I have noticed maybe some handle leak. It seems to be related to one (or to just a few) skins only. Is it possible?
Skin Mint, extended borders. When window is minimized and restored again, count of GDI handles is rising.
(or another simple app to reproduce it, two forms, open and close form2 from form1 – when form2 is closed, less GDI handles are freed than were created)
Checked via Process Explorer.
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
eledhParticipantHi,
I use AC Lite version so I cannot add TPageExtControl to the ThirdParty list.
It is not problem that PageExtControl is not skinned (would be better of course, but it is not problem).
This works properly in AC 7.70 (with and without ext borders) and in AC 8.18 this issue occurs only when ext borders are disabled, when ext borders are enabled, tabs are repainted correctly.
So this issue was introduced in some version between 7.70 and 8.18 but I did not test any of them.
eledhParticipantHi,
here is the demo attached. Sorry that I did not investigate it more before, I thought that it is “just” issue with PageExtControl that happens everytime, but it happens when Form caption is changed in “TabChange” event handler.
eledhParticipantI would like to add one another thing, it is not related to previous issue, but it is minor thing and it has been already reported, so I think it is not necessary to create a new topic.
It is also related to extended borders (enabled in this case) and another application (window) that is always on top. When my application using AC is restored from minimized state and its overlap some “always on top” window, the content of my form is correctly behind, but extended borders are in front of always of top window. So it is visually corrupted, content of window is correctly hiden but borders are painted.
Here is attached screenshot, Firefox window is set as “always on top” and Beijing Ext skin borders overlap it.
Not critical bug, but it does not look good.
[attachment=6226:ACborderoverlap.png]
August 24, 2012 at 11:08 am in reply to: Beijing Ext + Ext Borders = incorrect window size on 2nd display #48832eledhParticipantSorry, unfortunatelly it is not possible. These 2 monitor-PCs are at my work and because of very strict network policies (very limited access through proxy), it is not possible to establish such connection.
Have you tried it with Beijing Ext (with ext.borders) skin?
I found one interesting thing, this issue is also related to resolution, if I change resolution of my second monitor, form's width is ok. 1680×1050 is native and it cause this issue… If I set lower resolution (any lower) it is ok.
I tried also change resolution of primary display, but it has no influence.
If you have any idea what I could check, let me know.
August 24, 2012 at 7:00 am in reply to: Beijing Ext + Ext Borders = incorrect window size on 2nd display #48822eledhParticipantYes, exactly. But on the second monitor there should not be the taskbar.
As I have mentioned above, it occurs only on secondary monitory without taskbar (taskbar must be placed on primary monitor).
Then, if you click on maximize button, window is maximized, but it is too wide. In my case, its width is 2096 pixels on 1680×1050 resolution.
1. primary monitor with taskbar
2. secondary monitor (no taskbar)
3. move application window to secondary monitor
4. maximize it.
August 24, 2012 at 6:21 am in reply to: Beijing Ext + Ext Borders = incorrect window size on 2nd display #48820eledhParticipantHi,
I have tested it on 3 PCs, two of them have the same HW configuration (ATI 3400 series) and Win7 32bit and Win7 64bit, aero enabled.
Third PC has Intel display adapter, Win7 32bit, aero disabled. All PCs have the same monitors 1280×1024 and 1680×1050
This issue occurs on all 3 PCs.
August 13, 2012 at 11:05 am in reply to: Beijing Ext + Ext Borders = incorrect window size on 2nd display #48755eledhParticipantI did more investingation now and it seems that problems occurs only on secondary display if there is not the taskbar.
I moved taskbar from primary to secondary display and then window size is correct on both.
Primary display with/without taskbar: OK
Secondary display with taskbar: OK
Secondary display without taskbar: incorrect window size.
I tried others skins and this problem is related to: Beijing Ext, WEB2 (internal in ASkinDemo.exe, external skins packed with AC 7.67 is OK!), NeonNight.
I also noticed that Sapphire skin has “negative top” coordinate, title of form is partialy hidden, but obviously it is another issue (its width is ok).
August 13, 2012 at 10:33 am in reply to: Beijing Ext + Ext Borders = incorrect window size on 2nd display #48753eledhParticipantHi, yes, ASkinDemo.exe has the same behaviour.
Taskbar is placed at the bottom on primary display (1280×1024) and the problem occurs on secondary display (1680×1050).
The form is too wide as I mentioned already, and also too high, but not so much. Status panel at bottom of form ASkinDemo.exe (trackbar, progressbar, statuspanel3) is partialy visible and partialy hidden.
I have attached screenshot of secondary display.
eledhParticipantHello,
sure, here it is.
1. Just run Project1.exe Then click on “Show Form2” button. Form2 is shown. Then click on “Close” button in form2. Form2 is closed. Press TAB key and exception “Cannot focus disabled or invisible window” is thrown.
2. For second related issue, you have to enable FormHide animation on SkinManager. Then repeat steps in point 1. After pressing TAB key, exception is not thrown now, but when you press Enter key immediately then, “message” dialog is popped up – it means that Form2 is still focused and we just performed operation on button2 “Some dialog message” on closed Form2.
If you disable ExtendedBorders, both two previous issues are gone and it works perfectly.
eledhParticipantHi,
I tested your sample code, I also tried another modifications and no problem occured. It works properly without any AV.
AC 7.30, Delphi 2007, Win7.
Did you change anything else that is not in the sample code?
eledhParticipantHello,
it is better now, but still with “small” bug 🙂
Borders are still visible when FormHide animation is disabled.
Reproduce: Two forms application, SkinManager + SkinProviders. Set FormHide animation to false. Set “stayontop” on form2.
Use “Beijing Ext” skin, extended borders = true, show up the form2 from form1, close form2. Borders are still visible on desktop.
So there is workaround with enabled FormHide animation and with timer set to 0 (default settings).
eledhParticipantHello,
I also got similar info from one user of my application. He described the same behaviour (weird slowing down of whole system).
It never happened on my PC yet and I had not a chance how to investigate it.
Now when I read this topic I tried something and I found one case where probably the mentioned “handle leak” occurs, for instance, when FontDialog or ColorDialog is used.
Just try to open and close TFontDialog several times and GDI handles are still rising. (AC Lite, TsSkinManager with default values)
Just for info if it helps you to investigate the root cause and fix it.
eledhParticipantHi,
I discovered another one skin corruptioneledhParticipantHi,
now in 6.58 it is OK.
Many thanks.eledhParticipantHi,
in version 6.57 there is still problem with the first item in popupmenus on Win 7. Still the same issue as you can see on first left screenshot (in first post). It has not any functional influence, but it looks weird.eledhParticipantHello,
sorry, I tried to reproduce the issue in new demo application, but unfortunatelly it is not exactly the same as in my application.
It seems that problem occurs in moment, when OnPaint event of main form sets focus to another form and sets it “BringToFront”. See attached demo, it is not the right handling of form, but the result is similar to my issue (corrupted drawing, but in this case form cannot by closed). When I try older version 6.47, it is OK, skin is drawn correctly and form can be closed. I know that it is specific situation (with OnPaint event), but I think that 6.47 works better (and correctly) in this situation.I did changes in my application, I removed OnPaint event and it is OK now.
The problem related to popup menus first item can by reproduced in Win7 (Vista not tested), enable popupmenu extra line. Then, the selection of first item is cut on the left side. In winXP it is OK.
eledhParticipantHm I not really sure, there are some advantages and disadvantages on both sides. Finaly, I think that this font property can be in TsSkinManager. It will be easier for using, and enought for programmer to change caption font. I think that there is very few cases when application needs to have different captions on each form, and as you said, it will be more exacting to init this property in all forms. If may I suggest, implement version with “TitleFont property in TsSkinManager”, I suppose that it will be easier for you to make it and also easier for developer to use it.
AuthorPosts