
Zitat von
mjustin:
Nja, es gibt auch Beispiele, wo soeine
Unit dennoch nicht nötig ist.
Hier hat man z.B. einen Initialization-Block, aber ohne Verwendung von NutzeObjekt wäre das Objekt nicht nötig und die ganze
Unit könnte entfallen.
Delphi-Quellcode:
unit MyUnit;
interface
function NutzeObjekt:
String;
implementation
var Objekt: TStrings;
function NutzeObjekt:
String;
begin
Result := Objekt.Text;
end;
procedure ErstelleObjekt;
begin
Objekt := TStringList.Create;
Objekt.Text := Irgendwas;
end;
procedure LöscheObjekt;
begin
Objekt.Free;
end;
initialization
ErstelleObjekt;
finalization
LöscheObjekt;
end.
Bei sowas würde mir ein Sprachkonstrukt gefallen, wo man sagen könnte wann etwas einkompiliert(gelinkt werden soll.
z.B.:
Delphi-Quellcode:
initialization
{$IFUSED 'NutzeObjekt'}
ErstelleObjekt;
{$ENDIF}
finalization
{$IFUSED 'NutzeObjekt'}
LöscheObjekt;
{$ENDIF}
end.
Somit könnte der Compiler/Linker erkennen daß nichts in Initialization und Finalization gemacht wird und würde somit nicht einbinden müssen, bzw. nur eine leere
Unit, welche er ja eh wegläßt.
Ein Therapeut entspricht 1024 Gigapeut.