Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#3

AW: Bildgröße zur Laufzeit ändern

  Alt 4. Jul 2011, 13:49
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;

Geändert von blackfin ( 4. Jul 2011 um 14:03 Uhr)
  Mit Zitat antworten Zitat