Es wird immer das verwendet, was zuletzt vorkommt, also von unten nach oben zuerst gefunden wird, und hier ist es nunmal das NAME vom WITH.
Fazit: Lass solchen Mist wie WITH weg.
@Bernd: Dir viel Spaß, wenn das im WITH mal ein AName bekommt.
Sowas wie Self (aus Form statt Parameter/Lokale), oder einen UnitNamen als Namespace, gibt es für lokale Variablen oder Parameter nunmal nicht. (leider)
Also Parameter umbennen,
oder lokale Variable "mit anderem Namen" als Zwischenspeicher, vor dem WITH gesetzt. (optional via
absolute)
Alternativ etwas zum Lesen:
https://www.delphipraxis.net/204421-...variablen.html
PS: In Zukunft bitte [DELPHI]...[/DELPHI] um deine Codes nicht vergessen.