[dws-developer] Initialize
Brought to you by:
hhernler,
mackermann
From: Andreas L. <alu...@we...> - 2003-09-01 23:38:12
|
[Sorry, if this message comes multiple times ...] Hi (Matthias), DWS has some calls to initialize all its symbols and expressions. We use this feature in our project and for that we need some changes to the current implementation. IExecutable is defined by IExecutable = interface ['{8D534D18-4C6B-11D5-8DCB-0000216D9E86}'] procedure Initialize; function Optimize(FuncExpr: TExprBase): TExprBase; end; We need a more specialized Initialize (or better two different ones): IExecutable = interface ['{8D534D18-4C6B-11D5-8DCB-0000216D9E86}'] procedure InitSymbol(Symbol: TSymbol); procedure InitExpression(Expr: TExprBase); function Optimize(FuncExpr: TExprBase): TExprBase; end; InitSymbol is called, when a program is compiled and the symbol for the executable (e.g. TFuncSymbol "ShowMessage") is inserted into one of the symbol tables (e.g. symbol table of internal unit). InitExpression is called every time the executable is used in a function call within the script (e.g. ShowMessage('YES')). That's the more internal view. A visible change concerns the Tdws2Functions defined in a Tdws2Unit. The single event-type TInitializeEvent = procedure(Sender: TObject) of object; will be replaced by TInitSymbolEvent = procedure(Sender: TObject; Symbol: TSymbol) of object; TInitExprEvent = procedure(Sender: TObject; Expr: TExprBase) of object; and the old published event Tdws2Function.OnInitialize : TInitializeEvent will be replaced by two new properties: Tdws2Function.OnInitSymbol: TInitSymbolEvent Tdws2Function.OnInitExpr: TInitExprEvent I think this feature is not used so often and thats why I think there is no problem in doing these changes (for release 2.0). Any objections? If not, I will commit this code ... -------------------- Mark E. wrote: > How do you like being called Andy? (From the dwsforum) I tried to establish "ALu" as my synonym with every signed comment here and in the forum, but it was used only ONE time to address me (in nearly three years). Is it an invective outside Germany? All my colleagues call me "ALu" and most of them do not know the name behind ... However, "Andy" is not really an alternative to ALu |