aber für FOR das Perfekteste, weil hier niermand mehr auf die saublöde Idee kommen kann, nach/außerhalb der Schleife nochmal auf i zugreifen zu wollen.
for var i := 1 to 10 do
So ist es. Deswegen ist für mich
völlig unverständlich, warum man das nicht auch für with gemacht hat.
with var x := myImage1.Canvas, y := myImage2.Canvas.Brush do x.CopyRect(...);
mit x und y unbekannt außerhalb des Konstruktes.