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/)
-   -   Delphi Größe und Positionswerte begrenzt (https://www.delphipraxis.net/70569-groesse-und-positionswerte-begrenzt.html)

FrankZ1 1. Jun 2006 06:43


Größe und Positionswerte begrenzt
 
Hallo

Ich habe angefangen einen JPG-Viewer zu programmieren.
Der Viewer kann eine grosse Anzahl Bilder untereinander anzeigen.
Der Viewer ist eine Art ScrollBox (nicht TScrollBox), die einen beliebig grossen Anzeigebereich hat.
Meine Klasse TJpgPage die die Bilder enthält, habe ich von TCustomControl abgeleitet.
Diese Lösung wollte ich, damit TJpgPage die Funktion Paint nur aufruft, wenn ein Paint nötig ist und all die nützlichen Events schon zur Verfügung stellt. Das ging soweit so gut.

Jetzt musste ich feststellen, dass eine Instanz von TJpgPage nicht über eine Position von 32767 Pixel gezeichnet werden kann. Alle Instanzen von TJpgPage, denen ich einen grösseren Wert für Top zugewiesen habe, haben nachher Top auf 32767 gekürzt.

Meine bisherige Alternative war, die Instanzen von TJpgPage nicht mit seiner eigenen Prozedur Paint zeichnen zu lassen sondern von aussen, vom Viewer aus. Dazu muss ich alle Bilder durchfahren und checken, ob sie im sichtbaren Bereich sind. Mit der "richtigen" Implementierung erledigt das Windows für mich.
Ich vermute, dass auch all die Events die Beschränkung auf 32767 haben.
So werde ich wohl oder übel auch die Events beim Viewer implementieren müssen und sie auf die Instanzen von TJpgPage mappen.

Nun wollte ich wissen ob es nicht eine andere Möglichkeit gibt, die nicht die Einschränkungen von TCustomControl hat, um eine Klasse TJpgPage zu programmieren, die seine Instanzen selber zeichnen kann und alle Events zur Verfügung stellt.

Ich habe schon mit JVCL versucht. Da scheinen die gleichen Einschränkungen zu bestehen.

Hat jemand dazu eine Lösung?

Auf Posts kann ich wahrscheinlich erst am Abend nach der Arbeit antworten.

Gruß
Frank

FrankZ1 2. Jun 2006 10:35

Re: Größe und Positionswerte begrenzt
 
OK, mein Post oben war vielleicht zu umfangreich. :oops:

Kurz:
Gibt es Möglichkeiten die Positions-Begrenzungen von Controls zu umgehen?

FrankZ1 3. Jun 2006 01:07

Re: Größe und Positionswerte begrenzt
 
Liste der Anhänge anzeigen (Anzahl: 2)
Vielleicht kann ich noch mit Sourcen jemand locken?

Hier habe ich ein Demoprogramm erstellt, wo ein paar Bilder untereinander angezeigt werden.
Beim Demoprogramm lade ich per Zufallsgenerator immer die gleichen 5 Bilder.
In einer richtigen Anwendung könnten natürlich alles verschiedene Graphiken sein.

Beim Demoprogramm kann man angeben wieviel Bilder untereinander angezeigt werden sollen.
Wenn etwa 350 Bilder (es sind ziemlich kleine Bilder) angezeigt werden, kann man sehr gut die Effekte der Positionsbeschränkung beobachten, indem man ganz nach unten scrollt.

Ich hoffe mit dem Demoprogramm wird es klarer, wo meine Probleme sind und jemand hat eine gute Idee. Ich meine eine bessere Idee als ich (Paint-Prozedur und die Events im Viewer implementieren und auf die Pages mappen).

In einem ZIP-File sind nur die Sourcen (Delphi 2005 Personal Edition) vorhanden. Für den Fall dass jemand nicht das passende Delphi für die Erstellung der EXE-Datei hat, wäre die EXE-Datei noch in einer zweiten ZIP-File enthalten.

Gruß
Frank

Luckie 3. Jun 2006 02:31

Re: Größe und Positionswerte begrenzt
 
Wüdest du bitte aufhören deinen Beitrag innerhalb von 24 Stunden zu puishen? Danke.


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