Delphi-Quellcode:
with DM_Buecher.ADS_Buecher do
if sort = Column.Field.FieldName then
sort := Column.Field.FieldName + ' DESC'
else
sort := Column.Field.FieldName
Wenn
alles* unterhalb des WITH zu der Klasse gehört, welche direkt im WITH gekapselt wurde, dann gibt es meistens keinerlei Probleme,
aber wie man bei Umstellungen auf XE2, oder sonstigen Umstellungen oder Erweiterungen von Klassenstrukturen, gesehn hat, gibt es sofort Probleme, wenn sich z.B. Methoden/Property im Scope verschieben, bzw. wenn sich plötzlich Gleichnamiges dazwischenschiebt (im Scope auftaucht).
*) Property, Methoden/Funktionen, Felder und (eingebettete) Typen und Konstanten
WITH kann ein mächtiges Werkzeug sein, womit man sich Arbeit erspart,
aber man sollte es nicht inflationär und mit vorallem mit Bedacht einsetzen.
Und in dem hier vorliegendem Fall war es nunmal vollkommen nutzlos und brachte keinerlei Vorteile.
Zitat:
with ... do
anstatt einem .