Dans la documentation de CanvasGadget() il est noté : "Les valeurs maximales pour la largeur et la hauteur sont de 16 000 pixels."
Hors je viens d'écrire un outil de filtrage de règles de pare-feu qui utilise un CanvasGadget() et un ScrollAreaGadget() pour l'affichage et dont la hauteur du CanvasGadget() est calculé par rapport au nombre de lignes à afficher ce qui fonctionne très bien.
Mais en regardant de plus près je me suis aperçu que je dépassais de très loin la valeur de la hauteur maximum du CanvasGadget() puisque pour afficher 465 règles de filtrage je suis à 21 141 pixels.
Pour éclaircir ce point j'ai écrit le petit morceau de code ci-dessous et j'arrive à la conclusion qu'il y a un erreur dans la documentation de CanvasGadget(), puisque je peux créer sans problème un CanvasGadget() et un ScrollAreaGadget() de hauteur 32 767 pixels.
Si l'on modifie la valeur de y=32768, on obtient l'erreur suivante "La hauteur maximale d'un Gadget est de 32767 pixels.", ce qui confirmerais donc l'erreur dans la documentation.
REM : je suis sous Purebasic 6.11 LTS sur Windows 10 Pro 64bits
Code : Tout sélectionner
; REM 120 Mo de RAM consommée
If OpenWindow(0, 0, 0, 1280, 800, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
y=32767
scroll_id = ScrollAreaGadget(#PB_Any, 10, 70, 1260, 700, 1240, y, 30, #PB_ScrollArea_Flat)
Police = LoadFont(0, "Arial", 10)
Canevas=CanvasGadget(#PB_Any, 0, 0, 1260, y)
CloseGadgetList()
If StartDrawing(CanvasOutput(Canevas))
BackColor(#White)
FrontColor(#Blue)
DrawingFont(Police)
DrawText(10, 32747, "(10, 32747) => Hello World")
StopDrawing()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
