Hmm, Moja silna preferencja jest dla const AFilename: String;
z tego powodu, że zwłaszcza w przypadku większych projektów, jeśli kiedykolwiek trzeba dodać kod źródłowy z innego kodera, jeśli mają one wykorzystywane wiele niestandardowych typów jak TCustomerID, THashValue, TInterestRate, zamiast Integer, Cardinal, Double, to masz dużo wyżej wspomnianego E2033 do rozwiązania.
Nawet wiele Delphi budowane w kodzie źródłowym nie używa TFileName, jak:
function MatchesMask(const Filename, Mask: string): Boolean;
Ponadto jeśli mam zmienna zdefiniowana jak AFileName: TFileName;
następnie jego oczywiste, jego nazwa pliku & nazwany typ nie dodaje wszelka czytelność dla mnie, jeśli cokolwiek w niektórych przypadkach powoduje, że kod jest mniej czytelny, ponieważ trzeba kliknąć, aby sprawdzić, z której rzeczywistej zmiennej pochodzi.