Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Canvas so groß wie TImage (https://www.delphipraxis.net/61474-canvas-so-gross-wie-timage.html)

delphiNoob 21. Jan 2006 21:07


Canvas so groß wie TImage
 
Hallo

Ich habe ein Programm geschrieben, welches auf das Canvas einer TImage-Komponente zeichnet.

Jetzt mein Problem:
Wenn ich das Fenster maximiert habe ist der Canvas-Bereich immernoch so groß wie vorm maximieren, obwohl ich align auf alClient stehn hab uns autosize auf false habe.

Woran könnte das liegen und wie kann man das beheben???

Khabarakh 21. Jan 2006 21:16

Re: Canvas so groß wie TImage
 
Erstmal: eine Canvas hat genausowenig eine Größe wie einen Inhalt. Woran bemerkst du denn, dass die "Größe" der Canvas gleichgeblieben ist.

3_of_8 21. Jan 2006 21:17

Re: Canvas so groß wie TImage
 
Versuch mal ein Refresh;

delphiNoob 21. Jan 2006 21:27

Re: Canvas so groß wie TImage
 
Liste der Anhänge anzeigen (Anzahl: 2)
@Khabarakh: wirst wohl recht haben... ich hab mal zwei screenshots angehängt, vielleicht sagen die mehr als ich erklärt hab

@3_of_8: Ich hab Canvas.Refresh; ins onResize-Ereignis eingebaut, hilft aber net :(

Wenn ihr ewuch die Bilder ankuckt seht ir im maximiert-Bild unten einen hellgrauen Winkel, der sollte eigentlich nocht da sein, sondern auch grau wie das rechteck oben links

Khabarakh 21. Jan 2006 21:31

Re: Canvas so groß wie TImage
 
Benutzt du ein OffScreenBitmap? Wenn ja, musst du es natürlich an die neue Größe anpassen. Wenn nein, stimmt wohl etwas in deinem OnPaint-Eventhandler nicht.

SirThornberry 21. Jan 2006 21:32

Re: Canvas so groß wie TImage
 
hast du das Property "Stretch" auf True gesetzt? ansonsten wird das Bild nicht vergrößert wenn das TImage vergrößert wird. Du kannst natürlich auch im OnResize die Bitmap.Width und die Bitmap.Height deines TImage anpassen.

Corelgott 21. Jan 2006 21:45

Re: Canvas so groß wie TImage
 
hmmm

mag ja recht gut sein, dass ich mich da irre...

aber ist es nicht einfach so, dass grafikspeicher der komponente an der stelle nicht "vorhanden" ist, da der Teil bisher noch nicht benötigt wurde?

Kommt man da nicht mir doublebufferd herrum?

Code:
Form1.DoubleBuffered := true;
das sollte doch reichen, damit der der grafikspeicher persistent wird...
Wie gesagt, war zu faul das zu testen alle angaben ohne Gewehr... ^^

cya
Corelgott

delphiNoob 21. Jan 2006 21:51

Re: Canvas so groß wie TImage
 
@SirThornberry: wenn ich Stretch auf true stelle iss zwar der Winkel weg aber der Graph, der gezeichnet wird wird auch gestreckt und das ist ncht das gelbve vom Ei.

Die Lösung iss dem Bitmap die Breite/Höhe des Fensters zuzuweisen... :wall: :wall:

Danke euch allen für die Mühe

Corelgott 21. Jan 2006 23:00

Re: Canvas so groß wie TImage
 
Liste der Anhänge anzeigen (Anzahl: 1)
so... nu hat mich das genervt, das ich falsch lag...
Habe es gerade getestet und es reicht natürlich nicht ^^

ok ich habe mal ne kleine demo gebastelt, mit ner Lösung wie ich die bauen würde...

hoffe das hilft ein bissel und ist nicht zu kryptisch...

cya
Corelgott


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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