Registriert seit: 14. Apr 2006
Ort: Zürich
3 Beiträge
Delphi 2005 Personal
|
Größe und Positionswerte begrenzt
1. Jun 2006, 07:43
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
|