Posted by: Christian Wimmer in: Common
If you cannot compile JWSCL because the compiler tells you the following, then you should read on.
Incompatible Types: JwaWindows.<type X> and JwaWinNT.<type X>
In this case you did not follow the instructions How to setup JWA. However there is remedy.
The problem resides in JwaVista.pas which is part of JEDI API. It can be compiled using the units JwaWindows or JwaWinNT.
If you go and include JwaWindows.pas directly instead of using JwaWindows.dcu (as described in the howto), you’ll end up using a JwaVista which uses JwaWinNT. The compiler builds then a JwaWindows.dcu, JwaVista.dcu and a JwaWinNT.dcu which creates the conflict above.
If you don’t want the advantage of a JwaWindows.dcu, you have to define “JWA_WINDOWS” in your project options. Be aware that it does not work if you just write
It doesn’t work! You have to define JWA_WINDOWS in your project settings.
BTW: The advantage of a JwaWindows.dcu file is, that your projects will compile much faster, because the JEDI API units are not recompiled. They are just used. Of course you have to recompile the JEDI API everytime something changed in the source. Please read the Howto because it also tells you that there are package file for your Delphi which allows you to generate the DCU files. All you have to do is to set the source path to the DCU files instead of the PAS files.