Was deine
procedure new_size(x, y, max_x, max_y: integer);
betrifft:
Viele Wege führen nach Rom... (Obwohl mir deine Funktion da etwas zu chaotisch vom Aufbau her ist)
Ich würde es so lösen:
Delphi-Quellcode:
Faktor1:=x/max_x;
Faktor2:=y/max_y;
//Ergibt für jede Dimension den nötigen Verkleinerungsfaktor
Faktor:=Max(Faktor1,Faktor2);
x:=round(x/Faktor);
y:=round(y/Faktor);
Aufpassen: ich denke oben in der Variablenübernahme muss ein VAR hin, sonst werden x und y zwar ausgerechnet, aber nicht mehr in die Hauptprozedur zurückgegeben, oder?! Stichwort "Referenzübergabe".
procedure new_size(var x, y, max_x, max_y: integer);
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten
API wie ein Stolperstein wirken.