Aide - Recherche - Membres - Calendrier
Version complète : GridEx
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS > Développement HB++
D2P
J'ai un problème avec un GridEx lors du passage en 320x480...

Si je définis la hauteur du GridEx de manière optimale pour l'affichage en 320x320 (pour afficher 9 lignes par exemple), il affiche le début d'une ligne tronquée en bas d'écran quand je suis en 320x480 icon_cry.gif Et cette ligne ne peut pas être sélectionnée par un tap...
Payalba
Tu peux dans l'evenement resize redimensionner les elements un par un pour ajuster
D2P
CITATION(Payalba @ 07/05/2007 à 13:15 ) *
Tu peux dans l'evenement resize redimensionner les elements un par un pour ajuster

J'y avais pensé mais je voulais éviter ça, surtout si ce problème venait de moi anim_wink.gif Mais si c'est normal de procéder ainsi, alors je le fais wink.gif
quagliozzi
CITATION(D2P @ 07/05/2007 à 12:46 ) *
J'ai un problème avec un GridEx lors du passage en 320x480...

Si je définis la hauteur du GridEx de manière optimale pour l'affichage en 320x320 (pour afficher 9 lignes par exemple), il affiche le début d'une ligne tronquée en bas d'écran quand je suis en 320x480 icon_cry.gif Et cette ligne ne peut pas être sélectionnée par un tap...


Salut André,

En effet le GridEx n'a pas la méthode VisibleItems du Grid, mais tu peux en effet contourner cela dans le resize, en utilisant la hauteur de chaque ligne mais aussi les propriétés EnsureVisible et ColumnHeight.

Regarde dans la doc:

CODE
The [b]ColumnHeight [/b]property sets or retrieves the height of the cells in the column specified by the iCol parameter, expressed in standard coordinates. The first column index is 0. Calling this property specifying a column index less than zero or greater than the number of column -1 raises a runtime error.

The height of a row is given by the maximum height of the cells in this row. The iHeight parameter must be greater than zero. No other check is performed on columns heights; it is up to the programmer to ensure that each row can be entirely displayed within the control height.

If a column height is changed and the Redraw property is set to True, the display is updated immediately.


Si tu as besoin d'un coup de main, n'hésite pas anim_wink.gif

A+
Eric.
D2P
Merci Eric anim_wink.gif
D2P
CITATION(Payalba @ 07/05/2007 à 13:15 ) *
Tu peux dans l'evenement resize redimensionner les elements un par un pour ajuster

Ou je ne sais pas comment faire, ou bien je ne peux pas utiliser cette piste car la propriété Height d'un GridEx n'est pas modifiable quelcon.gif

CITATION(quagliozzi @ 07/05/2007 à 14:26 ) *
Salut André,

En effet le GridEx n'a pas la méthode VisibleItems du Grid, mais tu peux en effet contourner cela dans le resize, en utilisant la hauteur de chaque ligne mais aussi les propriétés EnsureVisible et ColumnHeight.

Regarde dans la doc:

CODE
The [b]ColumnHeight [/b]property sets or retrieves the height of the cells in the column specified by the iCol parameter, expressed in standard coordinates. The first column index is 0. Calling this property specifying a column index less than zero or greater than the number of column -1 raises a runtime error.

The height of a row is given by the maximum height of the cells in this row. The iHeight parameter must be greater than zero. No other check is performed on columns heights; it is up to the programmer to ensure that each row can be entirely displayed within the control height.

If a column height is changed and the Redraw property is set to True, the display is updated immediately.


Si tu as besoin d'un coup de main, n'hésite pas anim_wink.gif

A+
Eric.

Si je te comprends bien Eric, il faudrait par exemple que je redimesionne la hauteur de la dernière ligne visible pour que la suivant ne soit pas affichée question.gif
snark
Non, tu redimensionnes le GridEx pour que sa taille verticale soit un multiple entier de la taille d'une rangée.
D2P
CITATION(D2P @ 07/05/2007 à 15:12 ) *
Ou je ne sais pas comment faire, ou bien je ne peux pas utiliser cette piste car la propriété Height d'un GridEx n'est pas modifiable quelcon.gif

Et bien je ne savais pas comment faire icon_bla.gif

CITATION(snark @ 07/05/2007 à 16:02 ) *
Non, tu redimensionnes le GridEx pour que sa taille verticale soit un multiple entier de la taille d'une rangée.

Oui, avec un Move... Je patine dans la semoule aujourd'hui icon_bla.gif Merci top.gif
Payalba
J'allais te le dire : utilise move (Je bosse alors j'ai pas trop le temps de suivre sleep.gif )
D2P
CITATION(Payalba @ 07/05/2007 à 16:59 ) *
J'allais te le dire : utilise move (Je bosse alors j'ai pas trop le temps de suivre sleep.gif )

Merci quand même de suivre finalement... Ne t'inquiète pas, je peux comprendre icon_biggrin.gif
quagliozzi
Salut André,

Bien, je viens de rentrer et de reprendre le train en marche.

Voilà, je crois que tu as toutes les pistes:

1/ Détermination de la hateur totale de ton GridEx

myNewHeight = Nb de ligne visible * Hauteur d'une ligne (celle d'indice 0 par exemple)

soit:

myNewHeight = Nb de ligne visible * ColumnHeight (0)

Cette hauteur sera la plus grande trouvée
Doc HB++: The height of a row is given by the maximum height of the cells in this row

2/ Il faut t'assurer que cette hauteur modulo ColumnHeight (0) peut être contenue dans la Form, depuis le coin sup gauche (Top,Left) du Grid Ex. Le cas échéant déterminer combien de lignes visibles maxi, et refaire le calcul du 1/


3/ MOVE Left, Top, Width, myNewHeight

Rem:La hauteur d'une ligne est considérée comme celle de la celle la plus haute dans la ligne. Pour les contrôles standards, elle est liée à la police de caractères utilisée, mais pas pour le type UserDraw, qui est définie par tes soins lors de la création du GridEx (définition des colonnes).


A+
Eric.
D2P
Merci Eric. J'ai fini par trouver... C'est juste que j'essayais avec un Heiht et non un Move siffle.gif icon_bla.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.