Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TCanvas maximale vertikale ausdehnung 32xxx Punkte ? (https://www.delphipraxis.net/114946-tcanvas-maximale-vertikale-ausdehnung-32xxx-punkte.html)

Delphi_Fanatic 3. Jun 2008 09:36


TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
ich hab' das Gefühl, bei einem TCanvas, das auf einem Bildschirm dargestellt wird, ist ab 32xxx Pixels Schluss ist.
Ist das korrekt ?
Kann in der Vertikalen nichts mehr dargestellt werden, wenn die Y-Koordinate > ca. 32000 ist ?

mkinzler 3. Jun 2008 09:39

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
Rechne mal aus wie viel Speicher ein solches Bild belegen würde.

Delphi_Fanatic 3. Jun 2008 09:43

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
Stell' Dir vor, es ist nur ein Canvas, auf dem mit "TextOut" texte ausgegeben werden.
Auf dem Drucker klappt es, aber auf dem Bildschirm wird kein Text mehr angezeigt, wenn
bei "TextOut (x,y, <String>);" die Y-Koordinate > 32000 ist.

Gehe ich also recht in der Annahme, dass bei > 32000 "Feierabend" ist ?

SirThornberry 3. Jun 2008 09:49

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
ich könnte mir vorstellen das da schluss ist (zwecks Mauskoordinanten die da auch an ihre Grenzen kommen). Aber welcher Bildschirm schafft 32768 Pixel in der vertikalen? Oder wieviel Bildschirme hast du angeschlossen um dies zu erreichen? Liegt hier nicht vielleicht ein Designfehler vor?

uligerhardt 3. Jun 2008 09:58

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
Ich kann mich (dunkel :mrgreen:) erinnern, dass es unter Win95/98/ME Probleme gab, wenn Parameter für GDI-Funktionen aus dem 16-bit-Bereich rausgelaufen sind. Aber du sprichst schon von NT/XP/...?

Uli.

r29d43 8. Jun 2008 17:30

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
Zitat:

Zitat von Delphi_Fanatic
ich hab' das Gefühl, bei einem TCanvas, das auf einem Bildschirm dargestellt wird, ist ab 32xxx Pixels Schluss ist.
Ist das korrekt ?
Kann in der Vertikalen nichts mehr dargestellt werden, wenn die Y-Koordinate > ca. 32000 ist ?

In deinem Falle wird das wohl nur an einer Größenbeschränkung des TBitmaps liegen. Aber für das TCanvas an sich existiert dieses Limit nicht.

Legt man nämlich mal z.B. auf eine ScrollBox eine PaintBox (mit Align=alClient) und dehnt diese ScrollBox1 dann über ihre Properties "VertScrollBar.Range/HorzScrollBar.Range" auf jeweils z.B. 50000 Pixels aus, dann kann man sehr wohl mittels der Canvas auch in diese Bereiche reinzeichnen.

(...ist z.B. dann nötig, wenn ein (errechnetes Zoom-)Bild größer ist als der Screen. Dann baut man das dann ohnehin nur ausgebbare Teilbild in einem entsprechend kleineren Bitmap auf und läd dieses dann per BitBlt in den Bereich der PaintBox, welcher auch nur gerade in der ScrollBox angezeigt ist. Dabei ist der BitBlt-Ziel-Parameter auch die PaintBox1.Canvas und die Ziel-X/Y-Koordinaten dafür können ebenfalls größer als 32xxx sein.)



Übrigens, in Deinem Falle hättest Du auch mal versuchen können, das Bitmap.PixelFormat auf z.B. "pf1Bit" (also auf 1Bit/Pixel Tiefe) herunterzusetzen o.ä.. Sehr gut möglich, dass Du damit auch noch über dieses 32767-Limit hinausgekommen wärst.

Muetze1 9. Jun 2008 07:42

Re: TCanvas maximale vertikale ausdehnung 32xxx Punkte ?
 
Diese Frage wurde auch schon vor rund 10 Jahren gestellt und versucht zu klären, wodurch es zu diesem Experiment kam. In dem Link werden auch noch andere Dinge erläutert auf die man achten muss (z.B. erst die Auflösung oder erst die Farbtiefe setzen?). Auch weiterführende Links gibt es dazu, u.a. auch noch einen zu einem Microsoft KB Eintrag


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