1
votes

I have an issue in Delphi 10.1 Berlin using VCL Styles and an external DLL.

I'm using a Nitgen DLL to enroll fingerprints in my application. The process is handled by a COM object in NBSPCOM.dll.

When I call the method to enroll, the form from the DLL appears odd. It shows the Form background, images and controls are wrong, etc.

If I compile the application in XE8, the problem vanishes and all works fine.

I can't find the class of the DLL forms to try a VCL Styles hook.

Some screenshots of the form:

Original form

image

Wrong Form

image

1
They that sow the wind, shall reap the whirlwindDavid Heffernan
The native winapi controls (Static, Button, RebarWindow32, ...) are styled using a WH_CBT Hook, So maybe the issue is related to this area. Try disabling the styling of these controls using the Vcl.Themes.TStyleManager.SystemHooks property like so TStyleManager.SystemHooks := [];RRUZ
@RRUZ, man you save my life :D . I put the code TStyleManager.SystemHooks := []; in OnCreate of the Form and Work. Thanks a lot for your helpJoao Ishiwatari
@JoaoIshiwatari glad to help you. I just posted the comment as an answer in that way you can accept it.RRUZ

1 Answers

0
votes

When you uses the VCL Styles the native winapi controls (Static, Button, RebarWindow32, ...) are styled using a WH_CBT Hook, My guess is which the dll is using a static or Button winapi control where the background of the image is drawn. To overcome this you can disable the styling of these controls using the Vcl.Themes.TStyleManager.SystemHooks property like so

TStyleManager.SystemHooks := [];