Das ist bei einem Image32 ganz einfach :
Stell im ObjektInspector einfach den
ScaleMode des TImage32 auf
smOptimalScaled oder
smStretch, je nachdem was du willst.
(smOptimalScaled skaliert das Bild in das TImage32 hinein, während die Proportionen beibehalten werden, smStretch skaliert das Bild in die gesamte verfügbare Fläche des TImage32, ohne die Proportionen beizubehalten)
smResize gibts auch noch, wenn du das Bild grösser machen willst, als es im Original ist. (das macht smOptimalScaled nicht)
Auch smResize skaliert proportional.
Dann brauchst du per Code einfach nur noch die Grösse des Timage32 zu verändern (und nicht des internen Bitmaps!)
Die Skalierung und das Neuzeichnen macht das TImage32 dann ganz automatisch, ohne irgendwelche Kopier- oder Repaint-Routinen aufrufen zu müssen.
Delphi-Quellcode:
// Erst im Objektinspektor den ScaleMode von imageWindow auf smOptimalScaled, smStretch oder smResize stellen!
// Und dann:
procedure TForm1.btnScaleClick(Sender: TObject);
begin
imageWindow.Height := 100;
imageWindow.Width := 100;
end;