Taille maximum CanvasGadget()

Sujets variés concernant le développement en PureBasic
Print_Fred
Messages : 6
Inscription : jeu. 04/avr./2024 13:55

Taille maximum CanvasGadget()

Message par Print_Fred »

Bonjour,

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
Merci d'avance de vos retours :)
Windows 10 Professionnel 64bits
PureBasic 6.11 LTS (Windows - x64)
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Taille maximum CanvasGadget()

Message par Mesa »

Il faudrait vérifier s'il y a une limitation sous linux 32 et 64 et macos.

M.
Répondre