Page 1 sur 1

Ce programme ne marche plus avec la 4.40 beta x (Résolut)

Publié : dim. 08/nov./2009 11:07
par Good07
Bonjour à tous,
Comme je suis sur Mac depuis 2 ans, je suis PureBasic dans ces différentes versions et pour l'instant sur Mac c'est en progrès. Mais là j'ai un problème et je ne vois pas du tout d'où il pourrai venir, mis à part un Bug.
Ce programme ne fait rien de particulier à part de tester les différents gadgets sur Mac. Enfin seulement quelques un ... :D
Voici le programme:

Code : Tout sélectionner

;Windows

Enumeration
  #Window_0
  #Canvas
  #Button_1
  #Button_2
  #Button_3
  #Text_4
  #String_5
  #Panel_6
  #Image_1
EndEnumeration


  If OpenWindow(#Window_0, 20,20, 800, 400, "Essai Gadgets sur Mac", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  CreateImage(#Image_1,410,315)
  StartDrawing(ImageOutput(#Image_1))
    Box(0,0,410,335,RGB(255,255,255))
  StopDrawing()
     ImageGadget(#Canvas, 365, 25, 410, 315, ImageID(#Image_1), #PB_Image_Border)
      ButtonGadget(#Button_1, 35, 360, 115, 25, "Dessiner")
      ButtonGadget(#Button_2, 165, 360, 115, 25, "Effacer")
      ButtonGadget(#Button_3, 300, 360, 130, 25, "Quitter")
      TextGadget(#Text_4, 25, 25, 200, 20, " Essai",#PB_Text_Border)
      StringGadget(#String_5, 30, 95, 260, 30, "ça marche !")
      PanelGadget(#Panel_6, 25, 145, 280, 100)
        ; Tab #1
        AddGadgetItem(#Panel_6, -1, "Couleur")
        ; Tab #2
        AddGadgetItem(#Panel_6, -1, "Forme")
        ; Tab #3
        AddGadgetItem(#Panel_6, -1, "Texte")
      CloseGadgetList()
   EndIf




;Event loop

Repeat
  Select WaitWindowEvent()
        Case #PB_Event_Gadget
      Select EventGadget()
        Case #Canvas
        Case #Button_1
         StartDrawing(ImageOutput(#Image_1))   
           Box(0,0,410,435,RGB(255,255,255))
           DrawingMode(#PB_2DDrawing_Outlined)
           Circle(100,100,50,RGB(0,0,0))
         StopDrawing()
         TextGadget(#Text_4, 25, 25, 200, 20, " Cercle",#PB_Text_Border)
        Case #Button_2
         StartDrawing(ImageOutput(#Image_1))
            Box(0,0,410,435,RGB(255,255,255))
         StopDrawing()
         TextGadget(#Text_4, 25, 25, 200, 20, " Cercle effacé !",#PB_Text_Border)
        Case #Button_3
          CloseWindow(#Window_0)
          End
        Case #Text_4
        Case #String_5
        Case #Panel_6
      EndSelect
     ImageGadget(#Canvas, 365, 25, 410, 315, ImageID(#Image_1), #PB_Image_Border)
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver

; IDE Options = PureBasic 4.30 (Windows - x86)

; CursorPosition = 40

; Folding = --

; EnableXP
Théoriquement lorsqu'on appui sur le bouton dessiner ça devrai dessiner un cercle sur la surface de dessin, et le bouton effacer devrai effacer (d'où son nom :D ) ce même cercle. Le problème c'est que le cercle ne se dessine jamais sur cette surface. Pourtant avec la version 4.31 ça marche très bien. :twisted:
D'où mon interrogation est-ce que quelque chose à changé entre la version 4.31 et 4.40 Béta 6 ? Pour l'instant je n'ai rien trouvé. En version 4.40 B6 il fonctionne parfaitement sous Windows XP :roll:
J'en arrive à la conclusion que c'est la version Mac qui à un problème mais avant si quelqu'un pouvait tester sur Mac. :D

En vous remerciant par avance.

Re: Ce programme ne marche plus avec la 4.40 beta x

Publié : dim. 08/nov./2009 15:28
par Le Soldat Inconnu
pas de changement dans le code a partir du moment ou tu ne crée pas une image en 32 bits (ton image est en 24 donc pas de soucis)

J'ai pas de Mac pour tester mais sous Xp, c'est nickel. Regarde sur le fofo des anglais si il y a déjà qlq'un qui a eu le soucis, sinon, poste ton problème la bas.

Re: Ce programme ne marche plus avec la 4.40 beta x

Publié : dim. 08/nov./2009 17:02
par Good07
Bonjour Soldat :D
Merci pour ton conseil, effectivement j'aurai dû aller sur le forum Anglais avant de poster ici même si la réponse que j'ai trouvé ne me satisfait pas complètement. En fait il faut remettre :

Code : Tout sélectionner

CreateImage(#Image_1,410,315)
Avant d'utiliser StartDrawing ... 8O
Bon, enfin puisque ça fonctionne ...Mais encore fallait-il le savoir. :cry:
Le code suivant fonctionne parfaitement:

Code : Tout sélectionner

Enumeration
  #Window_0
  #Canvas
  #Button_1
  #Button_2
  #Button_3
  #Text_4
  #String_5
  #Panel_6
  #Image_1
EndEnumeration


  If OpenWindow(#Window_0, 20,20, 800, 400, "Essai Gadgets sur Mac", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  CreateImage(#Image_1,410,315)
  StartDrawing(ImageOutput(#Image_1))
    Box(0,0,410,335,RGB(255,255,255))
  StopDrawing()
     ImageGadget(#Canvas, 365, 25, 410, 315, ImageID(#Image_1), #PB_Image_Border)
      ButtonGadget(#Button_1, 35, 360, 115, 25, "Dessiner")
      ButtonGadget(#Button_2, 165, 360, 115, 25, "Effacer")
      ButtonGadget(#Button_3, 300, 360, 130, 25, "Quitter")
      TextGadget(#Text_4, 25, 25, 200, 20, " Essai",#PB_Text_Border)
      StringGadget(#String_5, 30, 95, 260, 30, "ça marche !")
      PanelGadget(#Panel_6, 25, 145, 280, 100)
        ; Tab #1
        AddGadgetItem(#Panel_6, -1, "Couleur")
        ; Tab #2
        AddGadgetItem(#Panel_6, -1, "Forme")
        ; Tab #3
        AddGadgetItem(#Panel_6, -1, "Texte")
      CloseGadgetList()
   EndIf




;Event loop

Repeat
  Select WaitWindowEvent()
        Case #PB_Event_Gadget
      Select EventGadget()
        Case #Canvas
        Case #Button_1
        CreateImage(#Image_1,410,315)
         StartDrawing(ImageOutput(#Image_1))   
           Box(0,0,410,435,RGB(255,255,255))
           DrawingMode(#PB_2DDrawing_Outlined)
           Circle(100,100,50,RGB(0,0,0))
         StopDrawing()
         TextGadget(#Text_4, 25, 25, 200, 20, " Cercle",#PB_Text_Border)
        Case #Button_2
        CreateImage(#Image_1,410,315)
         StartDrawing(ImageOutput(#Image_1))
            Box(0,0,410,435,RGB(255,255,255))
         StopDrawing()
         TextGadget(#Text_4, 25, 25, 200, 20, " Cercle effacé !",#PB_Text_Border)
        Case #Button_3
          CloseWindow(#Window_0)
          End
        Case #Text_4
        Case #String_5
        Case #Panel_6
      EndSelect
     ImageGadget(#Canvas, 365, 25, 410, 315, ImageID(#Image_1), #PB_Image_Border)
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver

; IDE Options = PureBasic 4.30 (Windows - x86)

; CursorPosition = 40

; Folding = --

; EnableXP
Merci pour ta réponse. :D

Re: Ce programme ne marche plus avec la 4.40 beta x (Résolut)

Publié : lun. 09/nov./2009 15:23
par Le Soldat Inconnu
Elle est bizarre cette solution ... plus que bizarre même ... c'est une solution provisoire en attendant la correction ?

Re: Ce programme ne marche plus avec la 4.40 beta x (Résolut)

Publié : lun. 09/nov./2009 16:36
par Good07
Aucune idée, Fred n'a pas répondu pour ce (Bug ?) sur le forum Anglais. C'est un participant qui à trouvé cette solution, mais c'est vrai que c'est bizarre. Surtout qu'avec la version 4.31 ça marchait bien et c'est avec les versions 4.40 que ça ne fonctionnait plus. :(
Peut-être que ce sera résolu avec la version finale. :D