Absolument j'ai meme jeté un oeil sur le code depuis et l'ai
optimisé. A l'ouverture de la fenetre je fabrique un tableau de
vignettes depuis mon dossier de base
Dim fichier as folderitem
Dim i as integer
Dim MonImage,Nouvelle as picture
Dim facteur as double
//== Je cherche le dossier
Fichier = DossierDatas.child("Mes Images")
Redim TableauImages(0)
If fichier = nil or fichier.exists = false then
fichier.createAsFolder
End if
//=== Je charge les images en les testant
For i = 1 to fichier.count
MonImage = fichier.item(i).OpenAsPicture
if monimage <> nil then
TableauImages.append MonImage
facteur =0.25
nouvelle = newpicture
(MonImage.width*facteur,MonImage.height*facteur,32)
nouvelle.graphics.DrawPicture monimage,
0,0,nouvelle.width,nouvelle.height,0,0,Monimage.width,monimage.height
TableauVignettre.Append Nouvelle
Listevignettes.addRow ""
Listevignettes.cell(Listevignettes.Lastindex,1)= fichier.item
(i).name
End if
Next
et dans le celltextpaint de ma liste
Dim monimage, nouvelle as picture
Dim i as integer
if column = 0 then
monimage = TableauVignettre(row)
If MonImage<> nil then
// ==== Voila la photo que je vais afficher
nouvelle = newpicture(MonImage.width,MonImage.height,32)
//== Je dessine l'image
g.DrawPicture monimage,0,0,nouvelle.width,nouvelle.height,
0,0,Monimage.width,monimage.height
End if
End if
Et voila je n'ai pas à m'occuper du scroll et je peux récuperer sans
probleme l'index
Le 18 oct. 07 à 13:36, Jean-Baptiste Barnoud a écrit :
Pas bête ! Si je comprends bien tu utilises le scrollbar de la liste ?
Antoine Crêtaux a écrit :
Moi j'ulise une liste d'image ( un apercu chargé depuis un dossier
d'images) j'ai utilisé une liste traditionnelle et me sert du
textpaint pour afficher chaque vignette. J'initialise mon tableau
à l'ouverture de l'appli et apres j'ai juste à l'afficher
Le 18 oct. 07 à 12:15, Jean-Baptiste Barnoud a écrit :
La zone de construction de l'interface, au centre, est équipée de
scrollbars.
A la réflexion, c'est vrai qu'il ne s'agit pas de contrôles, à
proprement parler, puisqu'ils ne sont pas en fonctionnement
lorsqu'on les dispose. Ce n'est en effet pas un très bon exemple.
Est-ce que cela n'existerait pas ? Un doute me taraude...
JB
Eric Pousse a écrit :
Où voyez-vous que REALbasic fait défiler des zones de contrôles?
Le 18 oct. 07 à 11:33, Jean-Baptiste Barnoud a écrit :
En effet, la question du design de l'interface se pose.
Personnellement je viens du monde web dans lequel on cherche à
caser un maximum de choses dans une seule page (histoire
d'éviter autant que possible de recharger la page). Par exemple
quand l'utilisateur sélectionne un élément d'une liste, le
détail s'affiche à côté.
Avec RealBasic j'ai dû changer d'habitude: désormais j'ai la
liste dans une fenêtre et le détail d'un élément s'affiche dans
une autre.
Mais là je suis confronté à une interface qui comporte un
certain nombre d'images et c'est vraiment pas évident de "faire
petit".
Par ailleurs il faut voir quelles limites on se met. Quelle
résolution de base ? 800 x 600 ? 1024 x 768 ? C'est surtout
dans le sens vertical que le problème se pose, et il n'y a pas
grande différence à ce niveau entre ces deux résolutions. Je
dirais donc que, au mieux, on peut compter sur 768 pixels de
haut (un peu moins même, disons 700 pixels, parce qu'il faut
compter avec les barres de menus et/ou d'outils). C'est pas
énorme.
Il me semble que ce serait quand même normal que l'on puisse
faire défiler des zones de contrôle. Beaucoup d'applis le font
(à commencer par Real Basic lui-même).
JB
|