Da du das Objekt danach noch benötigst, kannst du es an der Stelle gar nicht zerstören. Am einfachsten kannst du daher gleich das schreiben:
Delphi-Quellcode:
function RegisterCommandLineTool(const AName, ACommand: String; const AOptions: String = ''; const ACfgFile: String = '';
AOptionsFactory: TOptionsFactory = nil): TCmdTool;
begin
Result := TCmdTool.Create(AName, ACommand, AOptions, ACfgFile);
Result.Factory := AOptionsFactory;
CmdLines.AddCmdTool(Result);
end;
Und CmdLines würde ich mit dem Parameter True an den Konstruktor erzeugen, damit die darin gespeicherten Objekte beim Freigeben der Liste mit freigegeben werden:
Delphi-Quellcode:
initialization
CmdLines := TCmdTools.Create(True);