Page 1 sur 2

Afficher un message requester sans passer par Case

Publié : dim. 07/sept./2008 16:55
par Joker
Salut.
J'aimerais savoir s'il est possible d'afficher un message requester sans passer par Case.
En fait je suis sûr que c'est possible.
Oui,mais j'y arrive pas.
J'aimerais que quand l'utilisateur clique sur un bouton (en l'occurence Buton_0) une boite de dialogue lui soit affiché.

J'utilise alors If car avec Case je suis obligé de mettre un Select avant et je ne sais pas quoi y mettre,dans mon Select...

Code : Tout sélectionner

    If #Button_0 = 1
        MessageRequester("Yeah baby !",$ok,#PB_MessageRequester_Ok)
        EndIf
Pourtant,ca marche PAS... :(
Pouvez m'éclairer un peu ?
Merci :D

Re: Afficher un message requester sans passer par Case

Publié : dim. 07/sept./2008 17:14
par Backup
Joker a écrit :Salut.
J'aimerais savoir s'il est possible d'afficher un message requester sans passer par Case.
En fait je suis sûr que c'est possible.
Oui,mais j'y arrive pas.
J'aimerais que quand l'utilisateur clique sur un bouton (en l'occurence Buton_0) une boite de dialogue lui soit affiché.

J'utilise alors If car avec Case je suis obligé de mettre un Select avant et je ne sais pas quoi y mettre,dans mon Select...

Code : Tout sélectionner

    If #Button_0 = 1
        MessageRequester("Yeah baby !",$ok,#PB_MessageRequester_Ok)
        EndIf
Pourtant,ca marche PAS... :(
Pouvez m'éclairer un peu ?
Merci :D
pour t'aider, je prefererai que tu post un exemple complet (boucle des events compris !! :) )

mais si vraiment tu bloc meme pour ça alors.. on verra a t'expliquer la boucle des events en details :o) (si j'ai le temps....)

Publié : dim. 07/sept./2008 17:23
par Joker
Ben je bloque même pour ça,je débute ...
On est tous passé par là nan ? Nan ? Ah bon... :D

Bon sinon voila mon code complet :

Code : Tout sélectionner

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Frame3D_0
  #Listview_1
  #Frame3D_1
  #String_0
  #String_1
  #Button_0
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 220, 0, 300, 300, "a",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3D_0, 10, 10, 140, 280, "Liste des comptes")
      ListViewGadget(#Listview_1, 20, 30, 120, 250)
      Frame3DGadget(#Frame3D_1, 160, 10, 130, 130, "Ajouter un compte")
      StringGadget(#String_0, 170, 30, 110, 20, "Pseudo")
      StringGadget(#String_1, 170, 60, 110, 20, "Mot de pass")
      ButtonGadget(#Button_0, 170, 90, 110, 30, "AJOUTER !")
      
    EndIf
  EndIf
EndProcedure

Vous l'aurez compris(ou pas) : je veux qu'il soit possible d'ajouter des comptes dans une liste.
D'abord je veux qu'une alerte prévienne l'utilisateur qu'il a ajouté un comtpe.
Et ensuite,ajouter le compte...Logique :/
C'est tout,pour le moment.

@+ !

Publié : dim. 07/sept./2008 17:27
par Backup
........

Publié : dim. 07/sept./2008 17:36
par Joker
Collector ce code ! Merci tu m'aide mais tu n'imagines pas à quel point.
C'est un tout petit pas pour l'homme,un grand pas pour Joker ! Eh oui !
:P

Publié : dim. 07/sept./2008 17:39
par Backup
Joker a écrit :Collector ce code ! Merci tu m'aide mais tu n'imagines pas à quel point.
C'est un tout petit pas pour l'homme,un grand pas pour Joker ! Eh oui !
:P

ton code ne contiens que le dessin de la fenêtre, il manque la fameuse boucle des events !!
entre un Repeat-until en general :)

en fait un prg qui utilise les gadgets est a considérer en 2 parties !!

la partie 1 qui consiste a dessiner l'interface utilisateur

la partie 2 (la boucle des events) qui sert a gérer l'utilisation des "dessins" les gadgets de l'interface utilisateur !!

l'une des partie NE PEUX PAS se passer de l'autre !! :D

cloisonnons , cloisonnons !! :lol:

dans le temps sur ATARI (1040 stf) on dessinais l'interface avec K_ressource
et nous gérions les "gadgets" dans le Code (GFA Basic)

lors du dessin de l'interface, avec K_ressource, il fallait noter les numéro d'index de chaque gadget !! sans se tromper
parce qu'après dans le code, pour gérer, il fallait utiliser ce fameux numéro d'index !! :o)

maintenant c'est plus confortable on peux gerer les gadget directement par leur nom !! :D

Publié : dim. 07/sept./2008 17:51
par Joker
Sinon j'ai une autre question.
Je dois la poser dans un nouveau topic ou je peux rester ici ? :?

Publié : dim. 07/sept./2008 17:57
par Joker
Bon je vais rester ici.
Comment récupérer la valeur d'un String Gadget pour la placer autre part ?
Exemple :

Code : Tout sélectionner

MessageRequester( "Info","Tu viens d'ajouter le pseudo XXX !" )
Et aussi comment ajouter un item dans une liste ?
Car avec ce code,ca ne marche pas...

Code : Tout sélectionner

If gadgetid = #Button_0 ; oui ! il s'agit d'un bouton qu'on presse meme que c'est le bouton 2 
             AddGadgetItem(#Frame3D_2,-1,"Pseudo ajouté ")
             MessageRequester ( "Pseudo ajouté !" , "Le pseudo a été ajouté !" , #PB_MessageRequester_Ok )
              
             EndIf 
                     
Enfin ca écris juste le message mais ça n'ajoute pas l'item voulu.

:( [/code]

Publié : dim. 07/sept./2008 18:21
par Backup
désolé, mais donne ton code complet, je vais pas m'amuser a recreer un code pour chaques blemes :)

Publié : dim. 07/sept./2008 18:40
par Joker
Voila un code très simple qui permettrai d'en exploiter les fonctions suivantes :
-Dans un message requester
-Dans un Listview
-Dans un String Readonly

Code : Tout sélectionner

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #String_0
  #Button_0
  #Frame3D_0
  #String_1
  #Listview_0
EndEnumeration
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 220, 0, 179, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#String_0, 10, 10, 140, 20, "Tape un mot")
      ButtonGadget(#Button_0, 10, 40, 140, 20, "action !")
      Frame3DGadget(#Frame3D_0, 10, 80, 140, 190, "")
      StringGadget(#String_1, 20, 90, 120, 20, "T'as entré ça  :", #PB_String_ReadOnly)
      ListViewGadget(#Listview_0, 20, 120, 120, 140)
EndIf
EndIf
EndProcedure  

Publié : dim. 07/sept./2008 19:13
par Atomo
Si tu te débrouilles un peu en anglais je te conseil fortement d'acheter ce livre, je l'ai et il m'a tout apprit :)

http://www.pb-beginners.co.uk/

Publié : dim. 07/sept./2008 19:17
par Joker
Quel livre :? ?

Publié : dim. 07/sept./2008 19:37
par Backup
@Joker :

tu me met encore un code sans la boucle d'evenement ... :?

je vois que tu utilise le visual designer , c'est bien
d'autant que celui-ci te propose de generer automatiquement la boucle des evenements !!

menu "project" puis "project option"

coche "include event loop"


ceci fait tu dessine ton interface puis tu fait menu "Project"

et "Purebasic editor" cela va envoyer directement ton code complet

en 2 partie dans l'éditeur de purebasic (ou Japbe si tu utilise celui-la)

pas besoin de remplir les 2 champs du haut

une partie comprendra "generatedincludefile" c'est en fait le dessin de l'interface

l'autre partie "generatedmainfile"comprend la boucle d'événement
et aussi la ligne IncludeFile "GeneratedIncludeFile.pb"

c'est par cette ligne qu'est inclus l'autre partie , bien sur tu peux effacer cette ligne et mettre a la place le listing "generatedincludefile"

pour au final n'avoir qu'un seul listing au lieu de 2 !!

prends 'habitude sur le forum de mettre des codes complet
DESSIN+BOUCLE PRINCIPALE (boucle des events)

de façon a ce que ceux qui vont t'aider n'aient pas a perdre du temps a refaire la boulot !!
sinon personne ne voudra t'aider par manque de temps :)

d'autre parts, je t'invite a regarder ici :
http://www.purebasic.fr/french/viewtopic.php?t=6664

c'est un regroupement de TUTO

et plus particulierement celui-ci
http://www.purebasic.fr/french/viewtopic.php?t=6602

il concerne le visual designer justement !! :)

Publié : dim. 07/sept./2008 20:11
par Atomo
Désolé j'ai oublié le lien, je suis un boulet :o

http://www.pb-beginners.co.uk/

Publié : lun. 08/sept./2008 7:42
par djmcg
Atomo a écrit :Si tu te débrouilles un peu en anglais je te conseil fortement d'acheter ce livre, je l'ai et il m'a tout apprit :)

http://www.pb-beginners.co.uk/
J'espère qu'un jour il seras traduit.
Il le mérite vraiment et je serais le premier à l'acheter.

Merci encore pour l'aide que l'on reçois ici.

Jean-Marie
PS.: Je met un temps bête pour faire mes fenêtre parce-que sous linux, je n'ai pas de désigners. Si une solution existe. Merci de passer le mot. ;-)