Deux trois trucs ...
Deux trois trucs ...
voila j'ai plusieurs question :
1)d'abord j'aimerais associer un raccourci clavier à un bouton (buttongadget) et avec AddKeyboardShortcut(#Fenetre, #PB_Shortcut_Escape, #Valider), ça ne marche pas ...
2)J'aimerais aussi savoir comment associer deux chaînes de caractère pour qu'il y en ai une puis un passage à la ligne puis une deuxième
3)Enfin, je suis en train de faire un système de précédent/suivant mais le problème c'est que quand je fais deux fois précédent, c'est comme si je faisais précédent puis suivant donc si quelqu'un a une idée pour le faire marcher
1)d'abord j'aimerais associer un raccourci clavier à un bouton (buttongadget) et avec AddKeyboardShortcut(#Fenetre, #PB_Shortcut_Escape, #Valider), ça ne marche pas ...
2)J'aimerais aussi savoir comment associer deux chaînes de caractère pour qu'il y en ai une puis un passage à la ligne puis une deuxième
3)Enfin, je suis en train de faire un système de précédent/suivant mais le problème c'est que quand je fais deux fois précédent, c'est comme si je faisais précédent puis suivant donc si quelqu'un a une idée pour le faire marcher
Faudrait que tu montre un exemple de code pour que l'on puisse voir ce qui ne va pas.
Pour ta question #1, ta boucle de gestion des évènements doit ressembler à quelque chose du genre :
Le Case #Valider dans le Select EventMenu() est celui associé avec le raccourci clavier.
Le Case #Valider dans le Select EventGadget() est celui associé avec le clique de souris sur le bouton.
A+
Guimauve
Pour ta question #1, ta boucle de gestion des évènements doit ressembler à quelque chose du genre :
Code : Tout sélectionner
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Menu
Select EventMenu()
Case #Valider
; Mettre ici l'instruction à lancer
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Valider
; Mettre ici l'instruction à lancer
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
Le Case #Valider dans le Select EventGadget() est celui associé avec le clique de souris sur le bouton.
A+
Guimauve
Les raccourcis clavier fonctionnent comme les menus, ils sont gérés par #pb_event_menu.
Dans le paramètre "event", tu peux mettre soit une valeur, (0, 1, 2, 3, etc...), soit la constante qui est associée à ton gadget. (#Bouton_Valid, par exemple).
Pour associer deux chaines de caractères, tu utilises simplement le "+"
chaine1$ + chaine2$
Dans le paramètre "event", tu peux mettre soit une valeur, (0, 1, 2, 3, etc...), soit la constante qui est associée à ton gadget. (#Bouton_Valid, par exemple).
Code : Tout sélectionner
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Btn_Valid
#String_0
#Btn_Cancel
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 342, 151, 151, 122, "Valider ?", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Btn_Valid, 20, 45, 110, 30, "Oui", #PB_Button_Default)
StringGadget(#String_0, 10, 10, 135, 25, "")
ButtonGadget(#Btn_Cancel, 20, 80, 110, 30, "Non")
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return, #Btn_Valid)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Escape, #Btn_Cancel)
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case #Btn_Valid
SetGadgetText(#String_0, "Ok")
Case #Btn_Cancel
SetGadgetText(#String_0, "Ah bon !!!")
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_Valid
SetGadgetText(#String_0, "Ok")
Case #Btn_Cancel
SetGadgetText(#String_0, "Ah bon !!!")
EndSelect
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
Until Quit
End
;
chaine1$ + chaine2$
ok merci pour les raccourcis, par contre pour associer deux chaînes, je veux dire une chaîne, PUIS UN RETOUR A LA LIGNE, puis la chaîne suivante, et je sais pas comment encoder le retour à la ligne ...
Pour les précédents et suivants, voici mon code (je fais une sorte de navigateur web pour m'entraîner à coder en PB) :
Pour les précédents et suivants, voici mon code (je fais une sorte de navigateur web pour m'entraîner à coder en PB) :
Code : Tout sélectionner
Enumeration ;Gadget
#Onglet
#Editeur
#Couleur
#TexteCitation
#Citation
#TexteAuteur
#Auteur
#Effacer
#Valider
#Police
#Sauvegarder
#InternetRecherche
#Internet
#Historique
#Barre
EndEnumeration
Enumeration ;Menu
#Ouvrir
#Enregistrer
#EnregistrerSous
#Imprimer
#Quitter
#Precedent
#Suivant
#Couper
#Copier
#Coller
#Aide
EndEnumeration
Enumeration ;Toolbar
#TOuvrir
#TEnregistrer
#TImprimer
#TPrecedent
#TSuivant
#TCouper
#TCopier
#TColler
#TAide
EndEnumeration
If OpenWindow(0, 0, 0, 1300, 750, "Sebnet", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)And CreateGadgetList(WindowID(0))
If CreateMenu(0, WindowID(0))
MenuTitle("Fichier")
MenuItem(#Ouvrir, "Ouvrir" +Chr(9)+"Ctrl+O")
MenuItem(#Enregistrer, "Enregistrer" +Chr(9)+"Ctrl+S")
MenuItem(#EnregistrerSous, "Enregistrer sous"+Chr(9)+"Ctrl+R")
MenuItem(#Imprimer, "Imprimer" +Chr(9)+"Ctrl+P")
MenuBar()
MenuItem(#Quitter, "Fermer" +Chr(9)+"Alt+F4")
MenuTitle("Edition")
MenuItem(#Precedent, "Precedent" +Chr(9)+"Ctrl+Z")
MenuItem(#Suivant, "Suivant" +Chr(9)+"Ctrl+Y")
MenuBar()
MenuItem(#Couper, "Couper" +Chr(9)+"Ctrl+X")
MenuItem(#Copier, "Copier" +Chr(9)+"Ctrl+C")
MenuItem(#Coller, "Coller" +Chr(9)+"Ctrl+V")
MenuTitle("Historique")
MenuItem(#Historique, "Afficher l'historique" +Chr(9)+"Ctrl+H")
EndIf
NewList historique.s()
StringGadget(#InternetRecherche, 200, 0, 950, 25, "http://google.com")
ButtonGadget(#Valider, 1150, 0, 100, 25, "OK")
AddKeyboardShortcut(0, #PB_Shortcut_Return, #Valider)
URL$ = "http://www.google.com"
WebGadget(#Internet, 0, 25, 1300, 730, URL$ )
AddElement(historique())
historique() = URL$
nbre = 1
Repeat
Event = WaitWindowEvent()
If event = #PB_Event_Gadget ;un gadget est il utilisé ?
clicgadget = EventGadget() ;OUI, on identifie le gadget
Else
clicgadget = 0 ;NON, on renvoie 0
EndIf
If clicgadget = #Valider
URL$ = GetGadgetText(#InternetRecherche)
SetGadgetText(#Internet, URL$)
PreviousElement(historique())
If URL$ = historique()
Else
AddElement(historique())
historique() = URL$
EndIf
EndIf
If clicgadget = #Internet
If URL$ = historique()
Else
AddElement(historique())
historique() = URL$
EndIf
text$ = GetGadgetText(#Internet)
If text$ = URL$
Else
SetGadgetText(#InternetRecherche, text$)
PreviousElement(historique())
If text$ = historique()
Else
AddElement(historique())
historique() = text$
EndIf
EndIf
EndIf
If Event = #PB_Event_Menu
clicmenu = EventGadget()
Else
clicmenu = 0
EndIf
If clicmenu = #Valider
URL$ = GetGadgetText(#InternetRecherche)
SetGadgetText(#Internet, URL$)
PreviousElement(historique())
If URL$ = historique()
Else
AddElement(historique())
historique() = URL$
EndIf
EndIf
If clicmenu = #Precedent
resultat = CountList(historique())
SelectElement(historique(), resultat - 3)
SetGadgetText(#Internet, historique())
SetGadgetText(#InternetRecherche, historique())
EndIf
If clicmenu = #Historique
ResizeGadget(#Internet, 200, 25, 1100, 730)
ResetList(historique())
While NextElement(historique())
TextHistorique$ = TextHistorique$ + historique()
Wend
TextGadget(#Historique, 0, 25, 199, 730, TextHistorique$)
couleur = RGB(255, 255, 255)
SetGadgetColor(#Historique, #PB_Gadget_BackColor, couleur)
TextGadget(#Barre, 199, 25, 1, 730, "")
SetGadgetColor(#Barre, #PB_Gadget_BackColor, 000000)
EndIf
If Event = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
Tu fais.eldur a écrit :ok merci pour les raccourcis, par contre pour associer deux chaînes, je veux dire une chaîne, PUIS UN RETOUR A LA LIGNE, puis la chaîne suivante, et je sais pas comment encoder le retour à la ligne ...
Code : Tout sélectionner
chaine1$+#crlf$+chaine2$
Les petits exemples vont mieux que les grands discours :
Code : Tout sélectionner
MaChaine1.s = "Bonjour"
Machaine2.s = "A tous"
Rc.s = Chr(13)+Chr(10)
MaChaine3.s = Space(19) +MaChaine1 + Rc + Space(20)+Machaine2+Space(20)
MessageRequester("Exemple",MaChaine3)
Denis
Bonne Jounée à tous
Bonne Jounée à tous
comme indiqué par gansta93brossden a écrit :Les petits exemples vont mieux que les grands discours :
Code : Tout sélectionner
MaChaine1.s = "Bonjour" Machaine2.s = "A tous" Rc.s = Chr(13)+Chr(10) MaChaine3.s = Space(19) +MaChaine1 + Rc + Space(20)+Machaine2+Space(20) MessageRequester("Exemple",MaChaine3)
plus besoin de faire
Code : Tout sélectionner
Rc.s = Chr(13)+Chr(10)
Code : Tout sélectionner
Rc.s =#crlf$

la constante existe maintenant
