Forum: Object-Pascal / Delphi-Language
Delphi
by KrasserChecker,
25. Feb 2005
Richtig, wollte ich auch gerade sagen. HAbe nur zu langsam :coder:
function CurrentOL: Pointer;
begin
if ... then Result := @EineKomponente
else Result := @EineAndereKompoente;
end;
procedure DoSomething;
var temp: Pointer;
Forum: Object-Pascal / Delphi-Language
Delphi
by KrasserChecker,
25. Feb 2005
Stell doch deine Methode einfach auf einen Var-Parameter um:
procedure CurrentOL(var Value : TComponent);
begin
if ... then Value := EineKomponente
else Value := EineAndereKompoente;
end;
procedure DoSomething;
var temp: TObject;
begin
Forum: Object-Pascal / Delphi-Language
Delphi
by KrasserChecker,
25. Feb 2005
FreeAndNil erwartet einen VAR-Parameter. D.h. die Funktion will den übergebenen Wert ändern (schließlich setzt die Methode die übergebene Variable auf "nil").
Einer Funktion kann kein Wert zugewiesen werden, daher kannst Du deine Funktion auch nicht direkt an FreeAndNil weitergeben.
Lösung:
var temp: TObject;
begin
temp := CurrentOL;
FreeAndNil(temp);
end;