Wenn du schon eine Fehlermeldung bekommst, wenn der Port von einer anderen Anwendung in Beschlag genommen ist, dann fange die Fehlermeldung doch einfach mit try/except ab und setze im Except-Teil eine Variable auf False.
Delphi-Quellcode:
function PortFrei(const Port: string);
begin
Result := True;
try
Com1.OpenPort(Port); // <-- frei erfunden da ich die Komponente nicht kenne
Com1.ClosePort;
except
Result := False;
end;
end;