Prog arrièere plan = Boutton/images s'éffacent :x

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Prog arrièere plan = Boutton/images s'éffacent :x

Message par Shinao »

Re-bonjour,

Lorsque je met mon programme en arrièere plan ( je lance un autre programme qui va passer sur lui) alors les bouttons et images ou le programme du premier plan est passé dessus , les bouttons et images s'éffacent, par contre, les event lié à ces bouttons continues d'éxister...

Quelqu'un à déjà eu se problème :( ?
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.

Regarde si ce n'est pas un problème d'Enumeration au niveau de tes Gadget.

Avec l'ide officiel, tu lances ton programme et ensuite tu cliques sur le nom de ton gadget dans ton code source.

Ex :
ButtonGadget(#Button_valider, 35, 384, 120, 24, "Valider")

Ici tu dois cliquer sur #Button_valider et cela te donnera sa valeur.

Donc si tu as 2 Gadgets avec la même valeur, ton problème vient de là.

Bye.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Tiens voici un exemple qui peut poser problème :

Code : Tout sélectionner

Enumeration
    #GadgetInfo ; Sera 0
    #GadgetText ; Sera 1
    #GadgetOK   ; Sera 2
EndEnumeration


Enumeration
    #GadgetInfo1 ; Sera 0
    #GadgetText1 ; Sera 1
    #GadgetOK1   ; Sera 2
EndEnumeration


Debug #GadgetInfo ; Sera 0
Debug #GadgetText ; Sera 1
Debug #GadgetOK   ; Sera 2

Debug #GadgetInfo1 ; Sera 0
Debug #GadgetText1 ; Sera 1
Debug #GadgetOK1   ; Sera 2
Pour éviter ce problème tu peux faire comme ceci en ajoutant #PB_Compiler_EnumerationValue :

Code : Tout sélectionner

Enumeration #PB_Compiler_EnumerationValue
    #GadgetInfo ; Sera 0
    #GadgetText ; Sera 1
    #GadgetOK   ; Sera 2
EndEnumeration


Enumeration #PB_Compiler_EnumerationValue
    #GadgetInfo1 ; Sera 3
    #GadgetText1 ; Sera 4
    #GadgetOK1   ; Sera 5
EndEnumeration


Debug #GadgetInfo ; Sera 0
Debug #GadgetText ; Sera 1
Debug #GadgetOK   ; Sera 2

Debug #GadgetInfo1 ; Sera 3
Debug #GadgetText1 ; Sera 4
Debug #GadgetOK1   ; Sera 5
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Geo Trouvpatou a écrit :Salut.

Regarde si ce n'est pas un problème d'Enumeration au niveau de tes Gadget.

Avec l'ide officiel, tu lances ton programme et ensuite tu cliques sur le nom de ton gadget dans ton code source..
Marche aussi avec Japbe ;)


ps : perso , je n'utilise qu'un seul Enum
comme ça pas de risque de doublette :)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.
Dobro a écrit :Marche aussi avec Japbe ;)
A vrai dire j'avais découvert ça sous Linux, donc avec l"ide officiel.
Par contre je viens de tester dans JaPBe et cela ne fonctionne pas.
Peut-être une option que je n'ai pas vu.
Je vais jeter un oeil.
Dobro a écrit :ps : perso , je n'utilise qu'un seul Enum
comme ça pas de risque de doublette
Je sais, il y a 2 jours je suis retombé lors d'une recherche sur un de mes tous premiers post ici :
http://www.purebasic.fr/french/viewtopi ... ght=#76994

Mais depuis je fais un peu comme comtois faisait sur GameCreator, c'est à dire un peu comme en C.
Un .c = .pb et un .h = .pbi

Bye.

[EDIT]Arrrrffff!!!! je viens de trouver pour l'affichage des Enum dans JaPBe, c'est DANS la fenêtre de débuguage que cela fonctionne :wink:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Geo Trouvpatou a écrit : [EDIT]Arrrrffff!!!! je viens de trouver pour l'affichage des Enum dans JaPBe, c'est DANS la fenêtre de débuguage que cela fonctionne :wink:
ha bah oui !! :lol: , je croyais que tu parlais de la fenetre du debugger d'ailleurs !! :)
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Message par Shinao »

Malheuresement je n'ai qu'un seul Enumeration...

D'où ça peux venir alors :-( ?
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Tu ne peux pas donner de code?
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Message par Shinao »

Okey ça tiens sur plusieurs pages :x j'enleve la page procédure car il n'y a rien dedans... :

Index :

Code : Tout sélectionner

Enumeration
; Fenetres
  #Window_detected
  #Window_Login
; Gadgets
  #Image_Detected
  #bouton_image_login
  #Image_login
  #Pseudo_input
  #Pseudo_text
  #Password_input
  #Validation_login
  #Button_image_inscription
  #Button_image_inscription_load
  #Button_image_version_load
  #Button_image_version
  #Button_image_error_load
  #Button_image_error
  #Button_image_infos_load
  #Button_image_infos
  #Event_quitter
EndEnumeration

IncludeFile "detected.pb"
IncludeFile "login.pb"
IncludeFile "procedures.pb"

;Open_Window_detected()
;Delay(5000)

Open_Window_Login()

Repeat
Gadget = EventGadget()
Event = WaitWindowEvent ()

  Select Event
  
    Case #PB_Event_Gadget
    
    Select EventGadget()
    
      Case #Validation_login
      Connexion()
      Case #Button_image_inscription
      If EventType() = #PB_EventType_LeftClick
      Inscription()
      EndIf
      Case #Button_image_error
      If EventType() = #PB_EventType_LeftClick
      quitter = 1
      EndIf
      Case #Button_image_infos
      If EventType() = #PB_EventType_LeftClick
      Infos()
      EndIf
      
    EndSelect
    
  EndSelect
  
  
Until quitter = 1  

End
login.pb :

Code : Tout sélectionner

;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image_login

;- Catch Images
Imagelogin = CatchImage(#Image_login, ?Imagelogin)
Buttonimageversion = CatchImage(#Button_image_version, ?Buttonimageversion)
Buttonimageinscription = CatchImage(#Button_image_inscription, ?Buttonimageinscription)
Buttonimageerror = CatchImage(#Button_image_error, ?Buttonimageerror)
Buttonimageinfos = CatchImage(#Button_image_infos, ?Buttonimageinfos)

;- Images
DataSection
Imagelogin:
  IncludeBinary "images\login.png"
Buttonimageversion:
  IncludeBinary "images\version.png"
Buttonimageinscription:
  IncludeBinary "images\inscriptiontranspa.png"
Buttonimageerror:
  IncludeBinary "images\Error.png"
Buttonimageinfos:
  IncludeBinary "images\Information.png"
EndDataSection

Procedure Open_Window_Login()

  If OpenWindow(#Window_Login, 0, 0, 652, 445, "Detected", #PB_Window_BorderLess | #PB_Window_ScreenCentered )
  StringGadget(#Pseudo_input, 79, 180, 110, 22, "")
  StringGadget(#Password_input, 221, 180, 110, 22, "", #PB_String_Password)
  ButtonGadget(#Validation_login, 165, 222, 75, 30, "Connexion")
  ImageGadget(#Button_image_version, 3, 5, 138, 38, ImageID(#Button_image_version))
  ImageGadget(#Button_image_error, 573, 3, 50, 50, ImageID(#Button_image_error))
  ImageGadget(#Button_image_infos, 520, 3, 50, 50, ImageID(#Button_image_infos))
  ImageGadget(#Button_image_inscription, 59, 265, 300, 125, ImageID(#Button_image_inscription))
  ImageGadget(#Image_login, 0, 0, 652, 445, ImageID(#Image_login))
  EndIf

EndProcedure
detected.pb :

Code : Tout sélectionner

;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image_Detected

;- Catch Images
ImageDetected = CatchImage(#Image_Detected, ?ImageDetected)

;- Images
DataSection
Detected:
  IncludeBinary "images\detected.png"
EndDataSection

Procedure Open_Window_detected()
  If OpenWindow(#Window_detected, 250, 220, 500, 200, "Detected",  #PB_Window_BorderLess | #PB_Window_ScreenCentered )
      ImageGadget(#Image_Detected, 0, 0, 500, 200, ImageID(#Image_Detected))
  EndIf
EndProcedure
Voila :-(

edit : detected.pb à pas s'occuper enfaite puisqu'il est en commentaire :x

edit2 : enfaite je crois savoir d'ou ça vient :

l'image login qui prend toute la surface de la fenêtre est mis en derniere position ce qui veux dire que ça devrait effacé le reste des gadgets, mais enfaite j'ai fais comme ça car si je la place en premier, alors je ne peux pas cliqué sur le gadget par exemple un string gadget je ne peux rien écrire dedans par contre je vois la case, de plus les imagegadget ne sont pas visible de cette façon où alors il faut la faire passer en arriere plan et la faire revenir et tout est visible mais les events n'existe plus...

Je ne sais plus quoi faire :(
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Manque la source de procedures.pb

[EDIT] Même problème qu'ici :
http://www.purebasic.fr/french/viewtopi ... sc&start=0

Dés qu'il y a une image en background général, ça merdouille.
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Message par Shinao »

procédures :

Code : Tout sélectionner

Procedure Connexion()
EndProcedure

Procedure Inscription()
EndProcedure

Procedure Infos()
EndProcedure
rien de bien exeptionnel, je m'attaque pas au code tant que j'ai pas résolue ce problème :x

Mais il ne donne pas la solution :'(

Je crois que j'ai plus qu'une seule solution : StickyWindow, Adieu aux mouvements libres avec mon programme :'( pauvre utilisateur

Nan ! Quelqu'un n'aurait pas une solution pour que aulieu de mettre une image comme j'ai fais, l'inclure carrément en background , une genre de fonction ? :x

merci d'avance
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

tu n'as pas un site pour mettre ton prog entier avec les images?
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Message par Shinao »

Non je n'en ai pas... et puis un sticky n'est pas si mauvais enfaite... enfin pour cette fenêtre seulement...

On va faire comme ça, apart si l'un de vous à le remède miracle ;=)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Ou si tu pouvais mettre tes images ici :
http://imageshack.us/
Shinao
Messages : 137
Inscription : dim. 21/sept./2008 13:00

Message par Shinao »

ça serait beaucoup trop long pour peu de chose, google et taper le format et paf une image au hasard :p

non vraiment je pense pas qu'on puisse faire quelque chose :x

Enfaite j'ai trouvé une méthode... vraiment barbare mais bon au moin je peux le passer au second plan.. :x

edit : ouai la méthode marche très très bien... x)
Répondre