Was ist genau da der Unterschied, ich vermute mal, das letzteres besser ist, wenn ich auch nicht weiß, warum?
Gibt keinen unterschied, Assigned ist eine built-in inline Function (manche sagen dazu Compilermagic, weil man den Source davon nicht in der System.pas sieht) und erzeugt denselben assembler Code wie ein Vergleich auf nil.
Zitat von
Delphi Dokumentation:
Der Aufruf Assigned(P) entspricht bei einer Zeigervariablen dem Test P <> nil und bei einer Prozedurvariablen dem Test @P <> nil.
Assigned kann allerdings nicht in allen Fällen verwendet werden - zum Beispiel bei dem Ergebnis einer Funktion, da man dieses nicht über einen var Parameter weitergeben kann (E2036 Variable required.)