Andere Probleme wie hier aufgeführt sind mir jedoch noch nicht untergekommen.
Klassisches Beispiel: Als in einer Delphi-Version das TRect dann die Eigenschaften
Width und
Height bekam, erzeugten reihenweise Konstrukte wie
Delphi-Quellcode:
with myRect do begin
Bottom := Left + Width;
Right := Top + Height;
end;
zur Laufzeit ein falsches Verhalten. Vorher bezogen sich
Width und
Height noch auf den äußeren Scope - jetzt gibt es sie plötzlich auch im inneren. Der Compiler blieb davon natürlich ganz unbeeindruckt.
Solche Dinge können natürlich auch ohne
with passieren,
with ist aber vermeidbar.
Übrigens gibt es statische Sourcecode-Analyse-Tools, die sowas erkennen.
Genau dieses Problem ist bei PowerPdf. Dort verwendet der Autor zienlich exzessiv with MyRect. Deshalb läuft der Code auch nicht mehr ab der Delphiversion, ab der TRect ein Width und Height hat (glaube XE). Uwe, kannst du ein Sourcecode-Analyse-Tool empfehlen? Ich würde den Code gerne diesbezüglich mal überarbeiten.