Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Canvas bekommt Timage-resize nicht mit (https://www.delphipraxis.net/164416-canvas-bekommt-timage-resize-nicht-mit.html)

idefix2 11. Nov 2011 12:28

Canvas bekommt Timage-resize nicht mit
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

jetzt habe ich folgendes Problem:
Ich zeichne eine Graphik in das Canvas eines TImages. Das TImage ist align-client.
Wenn ich jetzt das Formular grösser mache, wird zzwar die Zeichenfläche grösser, entsprechend verändert sich auch der Massstab meiner graphik, aber es wird nur der Ausschnitt der Graphik angezeigt, der der ursprünglichen Bildgrösse entspricht, der Rest der zeichenfläche bleibt grau.

DeddyH 11. Nov 2011 12:32

AW: Canvas bekommt Timage-resize nicht mit
 
Und wann zeichnest Du? Im OnPaint?

himitsu 11. Nov 2011 12:38

AW: Canvas bekommt Timage-resize nicht mit
 
Wenn du auf ein leeres TImage zugreifst, dann wird darin ein TBitmap angelegt, mit der Größe des TImage.
Ändert man nun die Grlße des TImage, dann wird aber das TBitmap nicht verändert.

Lösung: Man muß das enthaltene TBitmap auch mit anpassen, da das Canvas auf dieses Bitmap zugreift.

DeddyH 11. Nov 2011 12:41

AW: Canvas bekommt Timage-resize nicht mit
 
Oder man nimmt gleich eine PaintBox, die ist zum Selberzeichnen IMO besser geeignet.

idefix2 11. Nov 2011 13:01

AW: Canvas bekommt Timage-resize nicht mit
 
@ DeddyH:
Ich zeichne derzeit nur in der Onclick-Routine des Zeichnen-Buttons. Später vielleicht noch timergesteuert nach einem onresize-event.
Und was ich gerne wissen würde: Was ist der Vorteil der Paintbox gegenüber dem TImage?

@ himitsu:
Und wie passe ich die Bitmap-Grösse an?

Progman 11. Nov 2011 13:03

AW: Canvas bekommt Timage-resize nicht mit
 
Zitat:

Zitat von idefix2 (Beitrag 1135704)
...
@ himitsu:
Und wie passe ich die Bitmap-Grösse an?

Image1.Picture.Bitmap.Width := Image1.Width ... usw. :-D

DeddyH 11. Nov 2011 13:05

AW: Canvas bekommt Timage-resize nicht mit
 
Die Hilfe sagt:
Zitat:

Mit TPaintBox können Sie einem Formular benutzerdefinierte Bilder hinzufügen. Im Gegensatz zu TImage-Objekten, die Bilder aus einer Bitmap-, Symbol- oder Metadatei anzeigen, muss die Anwendung bei TPaintBox das Bild direkt auf der Zeichenfläche selbst erzeugen. Mit der Ereignisbehandlungsroutine OnPaint zeichnen Sie auf die Zeichenfläche der TPaintBox-Komponente.
Kurz gesagt: will man vorhandene Grafiken (z.B. aus Dateien) anzeigen, ist TImage die Komponente der Wahl. Zum Selberzeichnen nimmt man dann besser TPaintBox und erledigt das Zeichnen in der OnPaint-Routine.

idefix2 14. Nov 2011 20:03

AW: Canvas bekommt Timage-resize nicht mit
 
@Progman: Danke, so funktioniert es.

Vielleicht stell ich das ganze später noch auf eine Paintbox um, aber so wie es jetzt aussieht, funktioniert es auch mit einem TImage wunderbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz