StringgGrid.width := 40000 impossible !:mouarf:
la propriété width deTStringGrid est un integer,
mais la taille limite est maxword div 2. (32768)
Comment y remédier ?
je programme sous Delphi 5
:salut:
Merci bcp
Version imprimable
StringgGrid.width := 40000 impossible !:mouarf:
la propriété width deTStringGrid est un integer,
mais la taille limite est maxword div 2. (32768)
Comment y remédier ?
je programme sous Delphi 5
:salut:
Merci bcp
Le problème c'est surtout, quel écran affiche du 40 000 pixel de large ? Même les Dalles médicales sont vers 3200 au maximum, ...
Tu ne confonds pas l'utilisation d'une ScrollBox et l'utilisation des ScrollsBars intégré à la Grille ?
Sinon pour les dimensions, ce n'est pas supprenant dans Windows, tu as pas mal d'API qui utilise des SmallInt ... genre WM_MOUSEMOVE
Résoudre limite Taille TDrawgrid
--------------------------------------------------------------------------------
Le drawGrid en question contient toutes les vignettes d' un album photo => Drawgrid1.colcount peut depasser 800 !
(parcontre Rowcount:= 3 )
La dimension de chague colwidth est une variable selon échelle de temps (temps exposition image à l'ecran dans le cadre d'un diaporama)
Enfin, le diaporama étant sonorisé, j'ai 3 pistes audio synchro avec les vignettes (144 pixels) .
Pour éffectuer des traitements de mixage audio...
j'ai besoin de distinguer correctement les vignettes, je les fais défiler dans une Scrollbox commune aux pistes audio (piste audio d'une heure équivaut à 800 images).
comme je suis synchro avec les vignettes on obtient :
800 * 144 pixels = 115200 pixels
(voir la moitié de la vignette me suffirait pour travailler en utilisant les canvas.stretchDraw)
Comme tu vois : je suis au delà de MaxWord !
Merci
Eric
Bon, la ScrollBox ne semble pas poser de problème, c'est un composant fait pour le défilement ... tient, as-tu essayé de poser pour chaque case une TImage (ou un Panel dessiner via DC ou WndProc) ... et voir comment cela se comporte ... les logiciels de mixage Video/Audio sont souvent très lourde en mémoire ... parce que beaucoup de composant et de mise en buffer d'élement pour accélérer les traitements ...
maintenant voir si fond ne pourrait pas être dessiné (voir la WndProc pour redessiner la ScrollBox en intégrant une image), ainsi au lieu de gérer une DrawGrid, tu ne gère qu'une Image qui contient les différents items synchro avec la ScrollBox ... effectivement tu gère l'affichage complet pourquoi ne pas gérer juste un écran dans un buffer et utiliser une ScrollBar indépendante pour te déplacer non pas une DrawGrid mais dans ton tableau d'objet qui lui s'affiche dans un simple TImage ... voir si la génération des images peut-être dans un Thread
Sinon, faire un affichage complet à la main, c'est à dire que tu gère toi même l'emplacement des Boutons et des Images, via une ScrollBar isolée ...