Unit B should just work if it is named "Programm B"
In a Unit there didn't just exist a begin. (as far as i know my
programms :) )
The initialization section is called when the unit is linked the first
time into the programm by a "uses" class.
so it is called before everithing else is going on, even before the
normal programm ever did a single step.
The initialization section is good for Units that you write, without
knowing the programm where it is used in.
So you could initialize some variables or objects, and you don't need
the programmer of the programm who uses your
Unit. (It is also good if you are the programmer who uses the unit.
Because everything what is needed for the Unit stays in that Unit.)
------------------------------------------------------------
unit A;
interface
type Tsomething = class(TObject)
...
public
procedure Hello;
....
end;
var
something : TSomething;
ProgrammDir : string;
implementation
....
initialization
something := Tsomething.create();
ProgrammDir := Application.Params[0];
finalization
something.free;
end.
------------------------------------------------------------
no everyone who uses the Unit A could just use "something.hello" without
creating the object.
(because the object just exists from the beginning.)
Beni
btw: i shouldn't post when i am drunk :)
leledumbo schrieb:
Might be a stupid question, but it's nowhere mentioned in the documentation
though allowed. What are the differences between:
unit A;
interface
implementation
initialization
<initialization code>
end.
and:
unit B;
interface
implementation
begin
<initialization code>
end.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal