@LoL:
Wie ich schonmal sagte, das Problem ist hier einfach nur, dass FreeAndNil eine Variable als Parameter haben will und eine Function als Funktionsergebnis eben nur sowas wie eine Konstante zurückgibt.
Demnach geht folgendes eben nicht.
Code:
procedure CurrentOL(var Value : TComponent);
begin
if ... then Value := EineKomponente
else Value := EineAndereKompoente;
end;
[color=#ff0000]FreeAndNil(CurrentOL);[/color]
Aber wie man oben schön sieht gibt es viele Möglichkeiten dieses zu umgehen.
- über Pointer
- über 'ne zusätliche Variable
- ...