[Résolu] Problème raccourcis clavier
[Résolu] Problème raccourcis clavier
Bonsoir,
j'ai un petit problème pour faire fonctionner un raccourci clavier.
J'aimerais faire en sorte que quand j'appuie sur la touche "Espace", mon fichier se trouvant dans une liste se lance.
J'ai essayé avec AddKeyboardShortcut() mais cela ne fonctionne pas.
Merci de m'aider
j'ai un petit problème pour faire fonctionner un raccourci clavier.
J'aimerais faire en sorte que quand j'appuie sur la touche "Espace", mon fichier se trouvant dans une liste se lance.
J'ai essayé avec AddKeyboardShortcut() mais cela ne fonctionne pas.
Merci de m'aider
Dernière modification par David02 le jeu. 31/mars/2011 9:45, modifié 1 fois.
Re: Problème raccourcis clavier
Donne du code s'il te plait.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème raccourcis clavier
Un raccourci clavier génère un évènement du type 'Menu' car ils sont souvent associés aux élèments des menus.David02 a écrit : J'ai essayé avec AddKeyboardShortcut() mais cela ne fonctionne pas.
je pense que vous essayer de créer un lecteur de fichiers mp3.
1-Déclarer un identifiant pour la touche Espace
Exemple #Kbd_Space
2-Affecter le raccourci
#Player : Notre fenetre
#PB_Shortcut_Space : La touche Espace
#Kbd_Space : L'identifiant de la touche à tester dans la boucle évènementiel.
AddKeyboardShortcut(#Player, #PB_Shortcut_Space, #Kbd_Space)
Un exemple simple de chargement d'un fichier mp3.
Code : Tout sélectionner
Enumeration
#Player
#Son
#ListMp3
#Kbd_Space
EndEnumeration
Global Source.s, PlayOnOff.b
;Jouer un mp3
Procedure PlaySoundMp3()
If LoadMovie(#Son, Source)
PlayMovie(#Son, WindowID(#Player))
Else
MessageRequester("Erreur", "Le son ne peut etre lu", #MB_ICONERROR)
EndIf
EndProcedure
;ne joue plus de son
Procedure StopSoundMp3()
StopMovie(#Son)
EndProcedure
;Initialise l'environnement movie, ouverture du player et selection du mp3 à jouer
Procedure PlayerShow()
If InitMovie() = 0
MessageRequester("Ooops ", "Ne peut initialiser l'environnement movie", #MB_ICONERROR)
End
EndIf
;Ouverture du player
OpenWindow(#Player, 100, 150, 280, 280, "Jouer un MP3")
ListIconGadget(#ListMp3, 15, 10, 250, 200,"Mp3", 190)
TextGadget(#PB_Any, 30, 220, 300, 20, "Touche [Espace] pour jouer ou arreter la lecture")
;Affectation d'une touche de racourci
;Ajoute un raccourci clavier pour la fenêtre spécifiée.
;Un raccourci clavier génère un évènement du type 'Menu'
AddKeyboardShortcut(#Player, #PB_Shortcut_Space, #Kbd_Space)
;Ouvrir un fichier mp3
Source=OpenFileRequester("Que voulez vous jouer ?", "", "Mp3|*.mp3", 0)
If source
AddGadgetItem(#ListMp3, -1, GetFilePart(Source))
EndIf
EndProcedure
PlayerShow()
;-Boucle evenementiel
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case #Kbd_Space
If PlayOnOff=#False
PlayOnOff=#True
PlaySoundMp3()
Else
PlayOnOff=#False
StopSoundMp3()
EndIf
EndSelect
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
;Libere la mémoire
If IsMovie(#Son)
FreeMovie(#Son)
EndIf
End ;Fermeture du programme
EndSelect
ForEver
Dernière modification par falsam le jeu. 31/mars/2011 13:43, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème raccourcis clavier
Merci ça fonctionne 
Par contre, je comprends pas à quoi sert ce code?
J'ai vu qu'il y avait le commentaire mais je comprends pas pourquoi ça libère de la mémoire.
Et dans ce code j'ai vu qu'il y avait "PlatonOFF.b.
A quoi sert-il?
En tout cas un grand merci car vous m'avez bien aidé

Par contre, je comprends pas à quoi sert ce code?
J'ai vu qu'il y avait le commentaire mais je comprends pas pourquoi ça libère de la mémoire.
Code : Tout sélectionner
;Libere la mémoire
If IsGadget(#Son)
FreeMovie(#Son)
EndIf
A quoi sert-il?
Code : Tout sélectionner
Global Source.s, PlatOnOff.b
En tout cas un grand merci car vous m'avez bien aidé

- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème raccourcis clavier
la bibliothéque Movie permet de lire des films mais aussi des fichier mp3 par exemple.
Oops !!! il fallait lire PLayOnoff. En voulant faire vite j'ai oublié de commencer mon code par EnableExplicit ce qui m'aurait indiquer immédiatement cette erreur de variable.David02 a écrit :Et dans ce code j'ai vu qu'il y avait "PlatonOFF.b.
A quoi sert-il?
Code : Tout sélectionner
Global Source.s, PlatOnOff.b
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème raccourcis clavier
Ton code fonctionne en tout cas, je l'ai testé.
Donc ça rejoint le code:
C'est possible de mettre un raccourci avec la touche "Entrée"? Car je ne la trouve pas dans l'aide
Donc ça rejoint le code:
Code : Tout sélectionner
If PlayOnOff=#False
PlayOnOff=#True
PlaySoundMp3()
Else
PlayOnOff=#False
StopSoundMp3()
C'est possible de mettre un raccourci avec la touche "Entrée"? Car je ne la trouve pas dans l'aide
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème raccourcis clavier
#PB_Shortcut_Return 
Si l'autocompletion est activé dans ton editeur Pure Basic, quand tu commences à taper #PB_Shortcut_ un menu contextuel (PopPup) devrait te faire apparaître l'ensemble des variables.

Si l'autocompletion est activé dans ton editeur Pure Basic, quand tu commences à taper #PB_Shortcut_ un menu contextuel (PopPup) devrait te faire apparaître l'ensemble des variables.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème raccourcis clavier
Oui il est activé mais moi je cherchais à chaque fois #PB_shortcut_enter lol
En tout merci de l'aide que tu m'as apporté
En tout merci de l'aide que tu m'as apporté

- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [Résolu] Problème raccourcis clavier
Deux erreurs corrigé dans le code
PlayOnOff.b au lieu de PlatOnOff.b
et
au lieu de
PlayOnOff.b au lieu de PlatOnOff.b
et
Code : Tout sélectionner
If IsMovie(#Son)
FreeMovie(#Son)
EndIf
Code : Tout sélectionner
If IsGadget(#Son)
FreeMovie(#Son)
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [Résolu] Problème raccourcis clavier
Cela change quoi dans le programme IsMovie() et IsGadget() ?
Car il n'y avait pas d'erreur lors du programme?
Car il n'y avait pas d'erreur lors du programme?
Re: [Résolu] Problème raccourcis clavier
isGadget vérifie que ton gadget est initialisé alors que isMovie vérifie que ton film est initialisé.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: [Résolu] Problème raccourcis clavier
Ça évite des erreurs alors ?
J'ai un autre petit problème avec la souris.
J'ai mis ce code là mais ça ne fonctionne pas.
En fait cela servirait à mettre en lecture une musique (ou film) sélectionner dans une playlist en faisant un double clique gauche.
J'ai un autre petit problème avec la souris.
J'ai mis ce code là mais ça ne fonctionne pas.
Code : Tout sélectionner
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Select EvenType()
Case #PB_EventType_LeftDoubleClick : Lecture()
EndSelect
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [Résolu] Problème raccourcis clavier
J'ai pris mon code précédent pour l'améliorer. la lecture séquentielle n'est pas encore gérer.
Ajout : du double clique, Pause, abandon de lecture, chargement d'un dossier, Volume et balance.
Ajout : du double clique, Pause, abandon de lecture, chargement d'un dossier, Volume et balance.
Code : Tout sélectionner
EnableExplicit
Enumeration
#Player
#Son
#MoviesDir
#MovieAdd
#DirectoryAdd
#ListMovies
#Volume
#Balance
#Kbd_On
#Kbd_Off
#Kbd_Pause
EndEnumeration
Define.l Event
Global Dim Movies.s (1), CountMovies.i, Movie.s, MoviesDir.s, CurrentMovie.i, MoviePlay.b, MoviePause.b
;Initialisation de la bibilothéque movie
Procedure MovieInit()
If InitMovie() = 0
MessageRequester("Ooops ", "Ne peut initialiser l'environnement movie", #MB_ICONERROR)
End
EndIf
EndProcedure
;Chargement d'un fichier
Procedure MovieLoad()
Movie=OpenFileRequester("Que voulez vous jouer ?", "", "Mp3|*.mp3", 0)
If Movie
;Ajout du fichier dans le tableau des fichiers à jouer (Movies)
Movies(CountMovies)=Movie
;Ajout du nom du fichier
AddGadgetItem(#ListMovies, -1, GetFilePart(Movie))
;On relie ListMp3 au tableau des sources à jouer
SetGadgetItemData(#ListMovies, CountGadgetItems(#ListMovies)-1, CountMovies)
CountMovies=CountMovies+1
ReDim Movies(CountMovies)
EndIf
EndProcedure
;AJout d'un dossier
Procedure MoviesLoad()
Protected Result.i, FileName.s, FileExt.s
; Quel dossier selectionner
MoviesDir = PathRequester("Dossier ou se trouve les morceaux à jouer:", MoviesDir)
; On cherche les mp3
If ExamineDirectory(#MoviesDir, MoviesDir, "*.*")
Repeat
Result = NextDirectoryEntry(#MoviesDir)
If Result
FileName = DirectoryEntryName(#MoviesDir)
If FileName <> "." And FileName <> ".."
FileExt = LCase(Right(FileName,4))
If FileExt = ".mp3"
Movies(CountMovies)=MoviesDir+FileName
AddGadgetItem(#ListMovies, -1, GetFilePart(FileName))
SetGadgetItemData(#ListMovies, CountGadgetItems(#ListMovies)-1, CountMovies)
CountMovies=CountMovies+1
ReDim Movies(CountMovies)
EndIf
EndIf
EndIf
Until Result=0
Else
MessageRequester("Error","Erreur de lecture" ,#MB_ICONERROR)
EndIf
EndProcedure
;Jouer un mp3
Procedure MoviePlay()
CurrentMovie=GetGadgetItemData(#ListMovies, GetGadgetState(#ListMovies))
If LoadMovie(#Son, Movies(CurrentMovie))
MoviePlay=#True
MovieAudio(#Son, GetGadgetState(#Volume), 100-GetGadgetState(#Balance))
PlayMovie(#Son, WindowID(#Player))
Else
MessageRequester("Erreur", "Le son ne peut etre lu", #MB_ICONERROR)
EndIf
EndProcedure
;Ne joue plus de son
Procedure MovieStop()
If IsMovie(#Son)
MoviePlay=#False
StopMovie(#Son)
EndIf
EndProcedure
Procedure MoviePause()
If IsMovie(#Son)
If MoviePause=#False
MoviePause=#True
PauseMovie(#Son)
Else
MoviePause=#False
ResumeMovie(#Son)
EndIf
EndIf
EndProcedure
;Ouverture du player et selection du mp3 à jouer
Procedure PlayerShow()
OpenWindow(#Player, 100, 150, 300, 310, "Jouer un MP3")
ButtonGadget(#MovieAdd, 10, 10, 80, 20, "Add File")
ButtonGadget(#DirectoryAdd, 95, 10, 80, 20, "Add Directory")
ListIconGadget(#ListMovies, 10, 35, 280, 200,"Mp3", 275)
TrackBarGadget(#Volume, 255, 240, 25, 70, 0, 100, #PB_TrackBar_Vertical)
SetGadgetState(#Volume, 50)
TrackBarGadget(#Balance, 280, 240, 25, 70, 0, 200, #PB_TrackBar_Vertical)
SetGadgetState(#Balance, 100)
TextGadget(#PB_Any, 10, 250, 300, 20, "[Entrée] - Jouer")
TextGadget(#PB_Any, 10, 270, 300, 20, "[Escape] - Arrêter")
TextGadget(#PB_Any, 10, 290, 300, 20, "[Espace] - Pause")
;Affectation des touches de racourcis (Un raccourci génère un évènement du type 'Menu' )
AddKeyboardShortcut(#Player, #PB_Shortcut_Return, #Kbd_On)
AddKeyboardShortcut(#Player, #PB_Shortcut_Escape, #Kbd_Off)
AddKeyboardShortcut(#Player, #PB_Shortcut_Space, #Kbd_Pause)
EndProcedure
;-Début du programme
CountMovies=1
MovieInit()
PlayerShow()
;-Boucle evenementiel
Repeat
Event=WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #Kbd_On
MoviePlay()
Case #Kbd_Off
MovieStop()
Case #Kbd_Pause
MoviePause()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #MovieAdd
MovieLoad()
Case #DirectoryAdd
MoviesLoad()
Case #ListMovies
If EventType()=#PB_EventType_LeftDoubleClick
MoviePlay()
EndIf
Case #Volume, #Balance
If IsMovie(#Son)
MovieAudio(#Son, GetGadgetState(#Volume), 100-GetGadgetState(#Balance))
EndIf
EndSelect
Case #PB_Event_CloseWindow
;Libere la mémoire
If IsMovie(#Son)
FreeMovie(#Son)
EndIf
End ;Fermeture du programme
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [Résolu] Problème raccourcis clavier
Ça fonctionne parfaitement

Juste une dernière question qui ne concerne pas le clavier ni la souris:
Quand on met une image dans le fond de la fenêtre et que l'on ajoute un TextGadget() par dessus, il y a toujours le cadre blanc autour du texte.
C'est possible de voir seulement le texte sur l'image sans avoir le cadre blanc qui fait laid?
(je sais pas si vous avez tout compris
)


Juste une dernière question qui ne concerne pas le clavier ni la souris:
Quand on met une image dans le fond de la fenêtre et que l'on ajoute un TextGadget() par dessus, il y a toujours le cadre blanc autour du texte.
C'est possible de voir seulement le texte sur l'image sans avoir le cadre blanc qui fait laid?
(je sais pas si vous avez tout compris

Re: [Résolu] Problème raccourcis clavier
Le plus simple est de créer un joli texte sur ton image de fond.
Sinon il va falloir que tu entres dans le monde merveilleux des API
Fait de petites recherches en utilisant les termes, "skin", "skin gadget"
Sinon je te conseils de regarder attentivement la joli lib de notre ami LSI qui te permettra de skinner fenêtre et bouton de A à Z
http://www.purebasic.fr/french/viewtopi ... =3&t=10193
pour obtenir un resultat du genre :

Comme tu peux le voir, ici les boutons, la fenêtre, le texte, tout est graphique (et interactif).
sinon :
Non testé avec une image en fond.
Sinon il va falloir que tu entres dans le monde merveilleux des API

Fait de petites recherches en utilisant les termes, "skin", "skin gadget"
Sinon je te conseils de regarder attentivement la joli lib de notre ami LSI qui te permettra de skinner fenêtre et bouton de A à Z
http://www.purebasic.fr/french/viewtopi ... =3&t=10193
pour obtenir un resultat du genre :

Comme tu peux le voir, ici les boutons, la fenêtre, le texte, tout est graphique (et interactif).
sinon :
Code : Tout sélectionner
Procedure WCB(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_CTLCOLORSTATIC
Select lParam
Case GadgetID(1)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,$0002FF)
ProcedureReturn GetStockObject_(#HOLLOW_BRUSH)
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0,0,0,250,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TextGadget(1,10,10,200,30,"Texte transparent",0)
LoadFont(0, "Arial", 16)
SetGadgetFont(1, FontID(0))
SetWindowColor(0,$CAFFFF)
SetWindowCallback(@WCB(),0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels