home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 January / Chip_1999-01_cd.bin / zkuste / delphi / D1 / GRABBAR.ZIP / DFS.inc < prev    next >
Text File  |  1998-08-26  |  7KB  |  170 lines

  1. (******************************************************************************)
  2. (* Delphi Free Stuff Include File.  This file is used for all my components   *)
  3. (* to create some standard defines.  This will help reduce headaches when new *)
  4. (* versions of Delphi and C++Builder are released, among other things.        *)
  5. (******************************************************************************)
  6. (* Brad Stowers: bstowers@pobox.com                                           *)
  7. (* Delphi Free Stuff: http://www.pobox.com/~bstowers/delphi/                  *)
  8. (* August 25, 1998                                                            *)
  9. (******************************************************************************)
  10. (* Usage:   Add the following line to the top of your unit file:              *)
  11. (*   {$I DFS.INC}                                                             *)
  12. (******************************************************************************)
  13. (*                                                                            *)
  14. (* Complete Boolean Evaluation compiler directive is turned off by including  *)
  15. (*   this file.                                                               *)
  16. (* The $ObjExportAll directive is turned on if compiling with C++Builder 3 or *)
  17. (*   higher.  This is required for Delphi components built in Builder with    *)
  18. (*   run-time packages.                                                       *)
  19. (*                                                                            *)
  20. (* Here is a brief explanation of what each of the defines mean:              *)
  21. (* DELPHI_FREE_STUFF    : Always defined when DFS.INC is included             *)
  22. (* DFS_WIN16            : Compilation target is 16-bit Windows                *)
  23. (* DFS_WIN32            : Compilation target is 32-bit Windows                *)
  24. (* DFS_USEDEFSHLOBJ     : The SHLOBJ.PAS version contains no none errors.     *)
  25. (*                        Delphi 2.0x and C++Builder 1.0x shipped with a      *)
  26. (*                        version of SHLOBJ.PAS that had many nasty errors.   *)
  27. (*                        See my web site in the Hints section for how to fix *)
  28. (* DFS_NO_COM_CLEANUP   : The version of the compiler being used does not     *)
  29. (*                        require COM objects to be released; it is done      *)
  30. (*                        automatically when they go "out of scope".          *)
  31. (* DFS_COMPILER_1       : Delphi 1.0 is the compiler.  Note that C++B 1.0     *)
  32. (*                        does NOT cause this to be defined.  It is really    *)
  33. (*                        the 2.0 compiler.                                   *)
  34. (* DFS_COMPILER_1_UP    : Delphi 1.0x or higher, or C++B 1.0x or higher is the*)
  35. (*                        compiler.                                           *)
  36. (* DFS_COMPILER_2       : Delphi 2.0x or C++B 1.0x is the compiler.           *)
  37. (* DFS_COMPILER_2_UP    : Delphi 2.0x or higher, or C++B 1.0x or higher is the*)
  38. (*                        compiler.                                           *)
  39. (* DFS_COMPILER_3       : Delphi 3.0x or C++B 3.0x is the compiler.           *)
  40. (* DFS_COMPILER_3_UP    : Delphi 3.0x or higher, or C++B 3.0x or higher is the*)
  41. (*                        compiler.                                           *)
  42. (* DFS_COMPILER_4       : Delphi 4.0x is the compiler.                        *)
  43. (* DFS_COMPILER_4_UP    : Delphi 4.0x or higher is the compiler.              *)
  44. (* DFS_UNKNOWN_COMPILER : No sense could be made of the compiliation          *)
  45. (*                        environment.                                        *)
  46. (* DFS_CPPB             : Any version of C++B is being used.                  *)
  47. (* DFS_CPPB_1           : C++B v1.0x is being used.                           *)
  48. (* DFS_CPPB_3           : C++B v3.0x is being used.                           *)
  49. (* DFS_CPPB_3_UP        : C++B v3.0x or higher is being used.                 *)
  50. (* DFS_DELPHI           : Any version of Delphi is being used.                *)
  51. (* DFS_DELPHI_1         : Delphi v1.0x is being used.                         *)
  52. (* DFS_DELPHI_2         : Delphi v2.0x is being used.                         *)
  53. (* DFS_DELPHI_2_UP      : Delphi v2.0x or higher is being used.               *)
  54. (* DFS_DELPHI_3         : Delphi v3.0x is being used.                         *)
  55. (* DFS_DELPHI_3_UP      : Delphi v3.0x or higher is being used.               *)
  56. (* DFS_DELPHI_4         : Delphi v4.0x is being used.                         *)
  57. (* DFS_DELPHI_4_UP      : Delphi v4.0x or higher is being used.               *)
  58. (******************************************************************************)
  59.  
  60.  
  61. { All DFS components rely on complete boolean eval compiler directive set off. }
  62. {$B-}
  63.  
  64. {$DEFINE DELPHI_FREE_STUFF}
  65.  
  66. {$IFDEF WIN32}
  67.   {$DEFINE DFS_WIN32}
  68. {$ELSE}
  69.   {$DEFINE DFS_WIN16}
  70. {$ENDIF}
  71.  
  72. {$IFDEF VER120}
  73.   {$DEFINE DFS_COMPILER_4}
  74.   {$DEFINE DFS_DELPHI}
  75.   {$DEFINE DFS_DELPHI_4}
  76.   {$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3 have no errors in SHLOBJ }
  77. {$ENDIF}
  78.  
  79. {$IFDEF VER110}
  80.   {$DEFINE DFS_COMPILER_3}
  81.   {$DEFINE DFS_CPPB}
  82.   {$DEFINE DFS_CPPB_3}
  83.   {$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3 have no errors in SHLOBJ }
  84. {$ENDIF}
  85.  
  86. {$IFDEF VER100}
  87.   {$DEFINE DFS_COMPILER_3}
  88.   {$DEFINE DFS_DELPHI}
  89.   {$DEFINE DFS_DELPHI_3}
  90.   {$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3 have no errors in SHLOBJ }
  91. {$ENDIF}
  92.  
  93. {$IFDEF VER93}
  94.   {$DEFINE DFS_COMPILER_2}  { C++B v1 compiler is really v2 }
  95.   {$DEFINE DFS_CPPB}
  96.   {$DEFINE DFS_CPPB_1}
  97.   {.$DEFINE DFS_USEDEFSHLOBJ} { C++B 1 has the correct SHLOBJ.H, but
  98.                                 SHLOBJ.PAS has errors so this isn't defined }
  99. {$ENDIF}
  100.  
  101. {$IFDEF VER90}
  102.   {$DEFINE DFS_COMPILER_2}
  103.   {$DEFINE DFS_DELPHI}
  104.   {$DEFINE DFS_DELPHI_2}
  105. {$ENDIF}
  106.  
  107. {$IFDEF VER80}
  108.   {$DEFINE DFS_COMPILER_1}
  109.   {$DEFINE DFS_DELPHI}
  110.   {$DEFINE DFS_DELPHI_1}
  111. {$ENDIF}
  112.  
  113. {$IFNDEF DFS_CPPB}
  114.   {$IFNDEF DFS_DELPHI}
  115.     { Don't know what the hell it is.  Could be new version, or could be old BP. }
  116.     {$DEFINE DFS_UNKNOWN_COMPILER}
  117.   {$ENDIF}
  118. {$ENDIF}
  119.  
  120. {$IFDEF DFS_COMPILER_1}
  121.   {$DEFINE DFS_COMPILER_1_UP}
  122. {$ENDIF}
  123.  
  124. {$IFDEF DFS_COMPILER_2}
  125.   {$DEFINE DFS_COMPILER_1_UP}
  126.   {$DEFINE DFS_COMPILER_2_UP}
  127. {$ENDIF}
  128.  
  129. {$IFDEF DFS_COMPILER_3}
  130.   {$DEFINE DFS_COMPILER_1_UP}
  131.   {$DEFINE DFS_COMPILER_2_UP}
  132.   {$DEFINE DFS_COMPILER_3_UP}
  133. {$ENDIF}
  134.  
  135. {$IFDEF DFS_COMPILER_4}
  136.   {$DEFINE DFS_COMPILER_1_UP}
  137.   {$DEFINE DFS_COMPILER_2_UP}
  138.   {$DEFINE DFS_COMPILER_3_UP}
  139.   {$DEFINE DFS_COMPILER_4_UP}
  140. {$ENDIF}
  141.  
  142. {$IFDEF DFS_DELPHI_2}
  143.   {$DEFINE DFS_DELPHI_2_UP}
  144. {$ENDIF}
  145.  
  146. {$IFDEF DFS_DELPHI_3}
  147.   {$DEFINE DFS_DELPHI_2_UP}
  148.   {$DEFINE DFS_DELPHI_3_UP}
  149. {$ENDIF}
  150.  
  151. {$IFDEF DFS_DELPHI_4}
  152.   {$DEFINE DFS_DELPHI_2_UP}
  153.   {$DEFINE DFS_DELPHI_3_UP}
  154.   {$DEFINE DFS_DELPHI_4_UP}
  155. {$ENDIF}
  156.  
  157. {$IFDEF DFS_CPPB_3}
  158.   {$DEFINE DFS_CPPB_3_UP}
  159. {$ENDIF}
  160.  
  161. {$IFDEF DFS_COMPILER_3_UP}
  162.   {$DEFINE DFS_NO_COM_CLEANUP}
  163. {$ENDIF}
  164.  
  165. {$IFDEF DFS_CPPB_3_UP}
  166.   // C++Builder requires this if you use Delphi components in run-time packages.
  167.   {$ObjExportAll On}
  168. {$ENDIF}
  169.  
  170.