ImageGadget ??

Archive.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

ImageGadget ??

Message par Jacobus »

:( Salut, j'ai constaté un plantage avec la 3.93 sur des applications créées avec la 3.92.

Que ce soit sous cette forme:

Code : Tout sélectionner

ImageGadget(#PB_Any,10,10,100,67,Image0,#PB_Image_Border)

ou sous cette forme:

Code : Tout sélectionner

ImageGadget(#Image0,10,10,100,67,Image0,#PB_Image_Border)
Une fois le code compilé et exécuté, en cliquant sur l'image, tout se ferme.
Le debugger et l'appli lancée. idem sous forme d'exécutable. Aucun blème pour le créer, mais bug intégré à l'exe.
Or, je n'ai inséré aucun Event sur l'image (possible maintenant)
Cela ne se produisait pas avec la 3.92.

Est-ce arrivé à quelqu'un d'autre :?:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Tu as mis la 3.93 à jour avec smartupdate ?

Si non, fais-le et dis-nous si c'est encore un bug
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Oui, j'ai mis à jour par smartupdate et je confirme mon problème.
D'autre part, j'ai essayé l'exemple de la doc de PB et ça ne pose aucun problème.
l'exemple de l'aide: (chemin de l'image à modifier pour test)

Code : Tout sélectionner

If OpenWindow(0,0,0,245,105,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ImageGadget") And CreateGadgetList(WindowID(0))
    If LoadImage(0, "C:\Mes documents\Mes images\BMP\Beware of Dog.BMP")    ; change 2nd parameter to the path/filename of your image
      ImageGadget(0, 10,10,100,83,UseImage(0))                      ; imagegadget standard
      ImageGadget(1,130,10,100,83,UseImage(0),#PB_Image_Border)     ; imagegadget with border
    EndIf
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
Ensuite je l'ai modifié pour inclure l'image dans l'exe.
Là ça plante : (chemin de l'image à modifier pour test)

Code : Tout sélectionner

Global Image0
Image0 = CatchImage(0, ?Image0)
Image0:IncludeBinary "C:\Mes documents\Mes images\BMP\Beware of Dog.BMP"

If OpenWindow(0,0,0,245,105,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ImageGadget") And CreateGadgetList(WindowID(0))
    
      ImageGadget(0, 10,10,100,83,Image0)                      ; imagegadget standard
      ImageGadget(1,130,10,100,83,Image0,#PB_Image_Border)     ; imagegadget with border
  
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
------------------------
j'ajouterai que le fait de cliquer sur une image qui engendre la fermeture pure et simple du programme, se produit dans une appli à fenêtres multiples.
Dernière modification par Jacobus le sam. 12/mars/2005 17:13, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Normalement, if faudrait mettre UseImage(Image0) à la place d'Image0.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Vu qu'Image0 est déclaré avant le UseImage() n'est pas nécessaire.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

aucun prob chez moi
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Argh! c'est pas fait pour me rassurer ça... :roll:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

extrait de la doc :
Un ImageID valide peut être obtenu via UseImage() ou ImageID().
(ImageGadget)[/code]
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Ben j'ai essayé aussi... résultat identique.
Les images chargées avec CatchImage() ne fonctionnent pas correctement sur ma config 8O
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

moi non plus pas de probleme. fait une reinstall propre de pb pour voir.
ou peut etre ce sont tes images à toi qui font planté mais je pense pas.
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Je pense que le problème vient d'un fichier corrompu quelque part sur mon système... mais lequel.

J'ai suivi ton conseil Flype, et réinstallé PB puis mis à jour par smartupdate et le résultat est pareil. Ce que je ne comprend pas c'est que le simple bout de code mis plus haut avec l'image chargée par catchImage() plante mon PB. Par contre un programme complet (env 1500 lignes) fonctionne très bien même avec les images en Catch.
je reste un peu ... 8O

Je vais tâcher de faire un peu de ménage dans le système...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

met ton image en lien ici, qu'on puisse testé avec avant de partir sur des trucs compliqués
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Bon et bien j'ai trouvé le pourquoi du comment du parceque... :oops:
Les solutions les plus évidentes crévent parfois les yeux, et j'en suis tout honteux.
Suivant tes conseils Régis, j'ai cherché au plus simple... et c'était effectivement pas compliqué.

Dans cet exemple, j'avais simplement omis d'inclure mon image en Data !!

Code : Tout sélectionner

Global Image0
Image0 = CatchImage(0, ?Image0)
DataSection 
Image0 : IncludeBinary "C:\Mes documents\Mes images\BMP\Beware of Dog.BMP"
EndDataSection 


If OpenWindow(0,0,0,245,105,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ImageGadget") And CreateGadgetList(WindowID(0))
    
      ImageGadget(0, 10,10,100,83,Image0)                      ; imagegadget standard
      ImageGadget(1,130,10,100,83,Image0,#PB_Image_Border)     ; imagegadget with border
  
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
et là, ben oui ça fonctionne :roll:

Quant au blème de la fermeture de programme en cliquant sur une image, il était dû à ma boucle Repeat mal conçue. (Une de mes premières réalisation qui tournait correctement et à laquelle je ne rajoutais que des fonctions supplémentaires sans me préoccuper du reste)

Code : Tout sélectionner

Repeat  
    EventID = WaitWindowEvent() 
    Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget 
    CloseWindow(2) 
      
      If EventID = #PB_EventGadget  
       Select EventGadgetID() 
          
          Case #bouton_modifier : creation_fiche(1) 
            
          Case #bouton_enregistrer  :creation_fichier()
            
          Case #bouton_menu : Interface_acces() 
            
          Case #bouton_imp : imprimer() 
            
       EndSelect 
      EndIf   
    EndProcedure 
Cette boucle intégrée à la procedure de ma fenêtre impliquait sa fermeture au clic sur une image.

Pour conclure : je n'ai pas trouvé de bug dans Imagegadget() mais uniquement dans ma façon de coder...

:? Merci à vous et désolé de cette petite bourde qui n'a de conséquence que sur mon orgueil... bon ben voilà, on fait comme si j'avais rien dis...hum hum
@+ :wink:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

:wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre