AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas bekommt Timage-resize nicht mit

Ein Thema von idefix2 · begonnen am 11. Nov 2011 · letzter Beitrag vom 14. Nov 2011
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 12:28
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.
Miniaturansicht angehängter Grafiken
bild1.png   bild2.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 12:32
Und wann zeichnest Du? Im OnPaint?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#3

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 12:38
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 12:41
Oder man nimmt gleich eine PaintBox, die ist zum Selberzeichnen IMO besser geeignet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 13:01
@ 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?
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 13:03
...
@ himitsu:
Und wie passe ich die Bitmap-Grösse an?
Image1.Picture.Bitmap.Width := Image1.Width ... usw.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Canvas bekommt Timage-resize nicht mit

  Alt 11. Nov 2011, 13:05
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#8

AW: Canvas bekommt Timage-resize nicht mit

  Alt 14. Nov 2011, 20:03
@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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 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