Forum Replies Created
-
AuthorPosts
-
HeDiBoParticipant'Support' wrote:
You are right, this issue will be solved in the nearest release.
Another solution might be to add bGlyphCentered to the Layout property.
HeDiBoParticipant'Support' wrote:Thank you, you gived me an idea how to improve it.
Try the attached file, tabs will not be skinned if form is not skinned.
It works great. My only concern is, that the Skinned function takes too much time for forms with complicated grids, etc.
I myself have a fast PC, so I will not notice a difference. But users with slow lap tops may.
However it does the job very well
HeDiBoParticipantThis code from acLFPainer should do the trick with forms added to ThirdPartySkipForms:
Code:function Skinned: boolean;
begin
DefManager := DefaultManager;
if DefManager nil then
Result := DefManager.CommonSkinData.Active
else
Result := False
end;It's this code that determines for all DevExpress controls if skinning should be done.
The code does not test if the control is placed on a Form that's mentioned in this exception list.
As the matter of fact, the only place where this is tested is in the TsSkinProvider. That is obviously absent in the PageSetup dialog of DevExpress.
There might be a solution to this, is DefaultManager was a function that would return an inactive SkinManager for excluded forms. Or if the DefaultManager would be nil for excluded forms.
HeDiBoParticipant'Support' wrote:These tabs are painted by the DevExpress skinning engine, seems.
If support of AlphaSkins in DevEx is enabled then DevEx uses functions of AlphaSkins for drawing…
I understand,
But it should not do that, if the form, on which this page control is placed, is added to the third party exception list:
Code:ThirdPartySkipForms.Add('TdxfmPageSetupDialog');The TcxPageControl and its TcxTabSheet Captions used there are still skinned.
HeDiBoParticipant'Support' wrote:Hello
If you can change this form, then you can change the Tag property to 256. The form will not be skinned in this case (if TsSkinProvider is not placed there).
If you haven't an access to the form, but you know a name of form class, then you can add this class name to the special ThirdPartySkipForms list.
This list is declared in the sThirdParty.pas file and you can see an example of this list using there.
Also, if TsSkinManager.SkinningRules.srStdForms is not enabled, then all forms will not be skinned if TsSkinProvider component is not placed there.
Thanks
HeDiBoParticipant'Support' wrote:This skin is updated, you can try it now:
Problem Solved
HeDiBoParticipantIf I reset SkinManager.SkinningRules to empty ([]) I get standard dialogs, except for the Page Setup dialog, which makes the tabs at the top dark. Text is unreadable then:
[attachment=8310:PageSetup.jpg]
It happens with dark skins.
Export to PDF dialog has a similar problem:
[attachment=8311:PdfExport.jpg]
HeDiBoParticipantThe problem seems to be, that AC keeps handling messages after the application has closed.
If you look at the stack trace at the moment of the error, you will find at the bottom System._Halt0
You would not expect to much message handling going on after this, but it goes on and on.
HeDiBoParticipantI found a simple test application that shows the bug:
[attachment=8305:acSkineSelectBug.zip]
Click the skin selector and then close the application: BOOOOIIIIINNGG
HeDiBoParticipantA further analysis showed that it is caused by a sSkinManager.Active := False statement in the DataModule.
That's part of a procedure called when the FormClose event in the Main Form is handled.
If I remove the explicit resetting of the Active property, the exception does not occur. In stead of that I get a multitude of memory leaks.
The memory leak info is included:
[attachment=8304:WIP4_MemoryManager_EventLog.txt]
HeDiBoParticipant'Support' wrote:Dick, this error is new or you had it earlier?
Please, try the v12.08, I have added some changes in destroying of controls there.
I hope, this changes works because I can't repeat and debug this issue, unfortunately.
I'm not sure if it was in 12.06 already. I will try to find out more about this bug.
To start with, this is the stack trace at the moment of the exception:
Code::000e0008
acPopupController.TacShadowForm.NewWndProc((794, 4294967295, -2147483647, 0, 65535, 65535, (), 1, 32768, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(68476,794,4294967295,2147483649)
:76272b5b ; C:WINDOWSSysWOW64user32.dll
:762650f3 ; C:WINDOWSSysWOW64user32.dll
:76264d4a ; C:WINDOWSSysWOW64user32.dll
:7626ec69 ; C:WINDOWSSysWOW64user32.dll
:77c1416d ntdll.KiUserCallbackDispatcher + 0x4d
:7625090f ; C:WINDOWSSysWOW64user32.dll
:757842f3 uxtheme.SetWindowTheme + 0x53
acSBUtils.TacMainWnd.Destroy
acSBUtils.TacScrollWnd.Destroy
System.TObject.Free
sSkinProvider.TsSkinProvider.AC_SMAlphaCmd_Common((41216, 131072, 102432912, 0, 0, 2, (), 144, 1563, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((41216, 131072, 102432912, 0, 0, 2, (), 144, 1563, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(68476,41216,131072,102432912)
:76272b5b ; C:WINDOWSSysWOW64user32.dll
:762650f3 ; C:WINDOWSSysWOW64user32.dll
:76264d4a ; C:WINDOWSSysWOW64user32.dll
:7626ec69 ; C:WINDOWSSysWOW64user32.dll
:77c1416d ntdll.KiUserCallbackDispatcher + 0x4d
:7625090f ; C:WINDOWSSysWOW64user32.dll
sStyleSimply.SendToHooked((no value))
sStyleSimply.AppBroadCastS((no value))
sSkinManager.TsSkinManager.SendRemoveSkin
sSkinManager.TsSkinManager.SetActive(False)
WipDM.TdmWIP4.FreeResources
WIP4Main.TWIP4MainForm.FormClose($5020310,caHide)
Vcl.Forms.TCustomForm.DoClose(???)
Vcl.Forms.TCustomForm.Close
Vcl.Forms.TCustomForm.WMClose(???)
Vcl.Controls.TControl.WndProc((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.WndProc((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Forms.TCustomForm.WndProc((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.AC_WMClose((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
acSBUtils.TacMainWnd.CallPrevWndProc(1116912,16,0,0)
acSBUtils.TacScrollWnd.acWndProc((16, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(1116912,16,0,0)
:76272b5b ; C:WINDOWSSysWOW64user32.dll
:762650f3 ; C:WINDOWSSysWOW64user32.dll
:76264d4a ; C:WINDOWSSysWOW64user32.dll
:7626ec69 ; C:WINDOWSSysWOW64user32.dll
:77c1416d ntdll.KiUserCallbackDispatcher + 0x4d
:76265a7b ; C:WINDOWSSysWOW64user32.dll
:75797094 ; C:WINDOWSSysWOW64uxtheme.dll
:75795ed8 ; C:WINDOWSSysWOW64uxtheme.dll
:76265e4b ; C:WINDOWSSysWOW64user32.dll
:76272b5b ; C:WINDOWSSysWOW64user32.dll
:762650f3 ; C:WINDOWSSysWOW64user32.dll
:7625aeb7 user32.CallWindowProcW + 0x97
Vcl.Controls.TWinControl.DefaultHandler(???)
:0055622b TWinControl.DefaultHandler + $EB
:0063e32a TCustomForm.WMSysCommand + $5A
:0055611a TWinControl.WndProc + $5CA
:0063aef2 TCustomForm.WndProc + $612
:008c56f0 TsSkinProvider.AC_WMSysCommand + $B50
:008b35b1 TsSkinProvider.NewWndProc + $8F9
:007e97c5 TacMainWnd.CallPrevWndProc + $41
:007dc88a TacScrollWnd.acWndProc + $B86
:0082c323 TrySendMessage + $4B
:008c09d7 TsSkinProvider.AC_WMLButtonUp + $F3
:008b3651 TsSkinProvider.NewWndProc + $999
:007e97c5 TacMainWnd.CallPrevWndProc + $41
:007dc88a TacScrollWnd.acWndProc + $B86
:0055575b TWinControl.MainWndProc + $2F
:004d4542 StdWndProc + $16
:76272b5b ; C:WINDOWSSysWOW64user32.dll
:762650f3 ; C:WINDOWSSysWOW64user32.dll
:76264a82 ; C:WINDOWSSysWOW64user32.dll
:76264850 user32.DispatchMessageW + 0x10I hope you can make some sense about it.
It may lead to points that you would like to get tested. Don't hesitate to ask.
May 20, 2017 at 10:26 am in reply to: TsDBLookupComboBox throws exception if open at form close #56661HeDiBoParticipant'Support' wrote:Hello
I see this error under latest Delphi versions, I will try to fix it in the nearest release.
Solved
HeDiBoParticipant'Support' wrote:Thank you, I will fix it in the nearest release.
Solved
HeDiBoParticipant'Support' wrote:You are right, I will check and change it soon.
No change in AC 12.08
HeDiBoParticipant'Support' wrote:Thank you for the demo, I wil fix it in the nearest release.
Solved in AC 12.08
HeDiBoParticipant'Support' wrote:Thank you, I will fix it.
Solved in AC 12.08
HeDiBoParticipantThe TsSkinManager.SkinsFilter property has been added in the v12.08, try to use it, please.
HeDiBoParticipant'Support' wrote:I will change it in the nearest release.
Solved in AC 12.08
HeDiBoParticipant'Support' wrote:This property will be added in the nearest release.
In AC 12.08 unfortunately, the Enabled property is published in TsArcDial, but not in TacCustomRoundBtn.
May 20, 2017 at 9:31 am in reply to: Image on Button only shows with SkinManager.Active = True #56651HeDiBoParticipantProblem solved in 12.08
-
AuthorPosts