Author: Jorge Abel Ayala Marentes
If you develop third-party components and you plan to include the source code. You
can not be certain how Delphi is configured for each user, how can you asure that
your componentīs code compile correctly?
Answer:
You can use a common include file in all your components unit, so you can set
compiler directives and conditional defines that govern the way the components are
compiled.
If the user recompiles your code, its naive to think that his compilers directives
are the same as the ones you used to develop the components. So creating a common
include file, you can override the userīs directives. For example you can use the
following:
// DCDC Include File
// You must include a similar file into each component unit so it can
// serve as a common place to add conditional defines and compiler
// directives.
// Code Generation Directives
{$O+} //Optimizations
{$F-} //Force Far Calls
{$A+} //Word Align Data
{$U-} //Pentium-Safe FDIV
{$K-} //Smart Callbacks
{$W-} //Windows Stack Frame
// Runtime Errors
{$IFOPT D+}
{$R+} //Range Checking - On - If compiled with Debug Information
{$ELSE}
{$R-} //Range Checking - Off - If compiled without Debug Information
{$ENDIF}
{$S+} //Stack Checking
{$I+} //I/O Checking
{$Q-} //Overflow Checking
// Syntax Options
{$V-} //Strict Var-Strings
{$B-} //Complete Boolean Evaluation
{$X+} //Extended Syntax
{$T-} //Typed @ Operator
{$P+} //Open Parameters
{4H+}//Huge Strings
// Miscellaneus Directives
{$Z-} //Word Size Enumerated Types
Because this is an include file you must use the $I directive to embed its contents
in your componentīs unit files.
1 {$I CIF.INC}
2
3 unit mcEdit;
4
5 interface
6
7 uses
8 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
9
10 type
11 TmcEdit = class(TCustomEdit)
12 private
13 { Private declarations }
14 public
15 { Public declarations }
16 end;
But, what if you create a component that uses a diferent compiler directive?, Just specify the new directive after the include file statements, this overrides the include fileīs directives.
|