Je suis confronté à un problème que je n'arrive pas à résoudre malgré plusieurs approches.
Je réalise une appli dont le but est de créer une liste des polices du dossier système Windows\Fonts ou tout autre dossier et d'afficher un aperçu de chacune d'elle dans un ScrollAreaGadget. Pour cela, je créé, pour chaque fonte, une image avec sa représentation graphique que j'affiche au fur et à mesure dans le ScrollAreaGadget à l'aide d'un ImageGadget placé juste en dessous du précédent.
Mon problème est qu'à un certain moment la valeur de l'ordonnée utilisée pour positionner l'ImageGadget semble se figer comme l'illustre l'image ci-dessous :

Bien évidemment, j'ai vérifié le typage des variables utilisées qui est de type Long, donc suffisant en terme de plage de valeurs.
Ici, un bout du code, situé immédiatement à la fin de la boucle de traitement, qui me permet de vérifier cela :
Code : Tout sélectionner
Debug "PositionY finale : "+DonneesGadget\PositionY
Debug "PositionY finale à l'échelle : "+Str(DonneesGadget\PositionY/FacteurEchelleY)
; Méthode 1
;SetGadgetAttribute(#GAD_FP_ZD_GALERIE,#PB_ScrollArea_InnerHeight,DonneesGadget\PositionY/FacteurEchelleY)
; Méthode 2
Protected.l ValeurX=DonneesGadget\PositionY/FacteurEchelleY
SetGadgetAttribute(#GAD_FP_ZD_GALERIE,#PB_ScrollArea_InnerHeight,ValeurX)
;
Debug "Hauteur finale innerheight : "+GetGadgetAttribute(#GAD_FP_ZD_GALERIE,#PB_ScrollArea_InnerHeight)
Et maintenant, une partie du résultat de la progression incrémentielle et de la valeur des données finales :

On constate que la valeur finale de la variable permettant de déterminer la hauteur interne nécessaire à l'affichage total (qui sera utilisée pour #PB_ScrollArea_InnerHeight), ici calculée à 63710 et 50968 avec mise à l'échelle DPI, est cohérente.
Or, après affectation de cette valeur via SetGadgetAttribute(), quand je récupère ladite valeur via GetGadgetAttribute(), elle ne correspond absolument pas.
Ce phénomène ne se produit pas pour un nombre plus faible d'ImageGadget().
Toutefois, j'ai fait d'autres tests où, par exemple, je créé un ScrollAreaGadget avec une hauteur interne de 100 000 pixels, pas de souci, un autre avec plus de 3 000 ImageGadget, pas de souci non plus d'où mon incompréhension totale dans les comportements et résultats exposés plus haut.
Quelqu'un aurait-il une idée de ce qui peut causer de "dysfonctionnement" ?