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:
Delphi-Quellcode:
var temp: TObject;
begin
temp := CurrentOL;
FreeAndNil(temp);
end;
Zitat:
(CurrentOL := TComponent.Create(form1) das geht ja nicht...
siehe oben (Einer Funktion kann kein Wert zugewiesen werden)