realbasic-nug.fr
[Top] [All Lists]

Re: scrollbar

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: scrollbar
From: Antoine Crêtaux <antoine at cretaux dot fr>
Date: Thu, 18 Oct 2007 14:10:57 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <p06240802c3353157c31b at [62 dot 161 dot 36 dot 122]> <470F907B dot 5060009 at realsoftware dot fr> <p06240800c338d6461d1c at [62 dot 161 dot 36 dot 122]> <47132D93 dot 1040701 at realsoftware dot fr> <8dd0dd24bb670c16cbb2116289f114dd at wanadoo dot fr> <47171E51 dot 7080207 at icom2i dot info> <B6F38A9B-703D-4364-871B-3FB4BD1548E0 at adx-online dot com> <47172870 dot 8030503 at icom2i dot info> <7988F0F9-3646-4FCC-B8EF-0BA14C0C45DE at adx-online dot com> <47173232 dot 6090200 at icom2i dot info> <FB5B0F84-5507-4258-B422-908305283342 at cretaux dot fr> <4717454F dot 1030001 at icom2i dot info>
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











<Prev in Thread] Current Thread [Next in Thread>