Entwickler-Ecke
Multimedia / Grafik - Image / Canvas - Größe verändern
holger - Mi 27.11.02 15:50
Titel: Image / Canvas - Größe verändern
Image / Canvas
Ich möchte während des Programmverlaufes die Größe eines Images ändern.
Das mache ich z.Z. einfach durch Verändern von "image1.height" bzw. "image1.width".
Beim vergrößern wächst jedoch die Leinwand "canvas" nicht mit.
Ein LineTo.. welches über die alten Imagegrenzen hinaus ragt wird nur bis zu den alten Grenzen
hin angezeigt.
Bei einem geladenen Bitmap tritt das Problem nicht auf.
Wenn ich image1.stretch auf true setze ändert sich zwar die Größe von Canvas analog zum Image,
jedoch geht damit auch mein Maßstab verloren. Das will ich nun auch wieder nicht.
Wie muß ich vorgehen?
(Die Grafik darf bei der Aktion auch ruhig gelöscht werden / die kann ich ohne weiteres "neu
zeichnen")
Holger
Udontknow - Mi 27.11.02 16:53
Hi!
Mal ne dusselige Frage: Woran erkennst du, daß der Canvas nicht mitwächst? TCanvas ist nämlich zunächst nur eine abstrakte Basisklasse, in der eben die Bearbeitungsfunktionen für das übergordnete Bild eingebunden werden.
Der Canvas kann sich gar nicht vergrössern oder verkleinern, er stellt nur eine Bearbeitungsschnittstelle dar.
Daher noch einmal meine Frage:
Woran erkennst du, daß der Canvas nicht mitwächst?
Cu,
Udontknow
holger - Do 28.11.02 00:17
Die Frage ist gar nicht so dusselig. Ich weis es nämlich nicht. Ich vermute es nur.
Weil eben z.B.:
"Ein LineTo.. welches über die alten Imagegrenzen hinaus ragt wird nur bis zu den alten Grenzen angezeigt"
Wahrscheinlich packe ich das ganze falsch herum an.
Trotzdem erst mal vielen Dank
Udontknow - Do 28.11.02 10:13
Tatsächlich. Es verhält sich tatsächlich so, wie du sagst.
Die Lösung ist folgende:
Benutze nicht die Eigenschaft Image.Canvas und Image.Width/Height, sondern die Eigenschaften von Image.Picture.Bitmap.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var Bitmap:TBitmap; begin Bitmap:=Image1.Picture.Bitmap; Bitmap.Width:=20; Bitmap.Height:=20; Bitmap.Canvas.MoveTo(10,10); Bitmap.Canvas.LineTo(30,30); Bitmap.Width:=50; Bitmap.Height:=50; Bitmap.Canvas.MoveTo(10,20); Bitmap.Canvas.LineTo(40,40); end; |
Cu,
Udontknow
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!