Je fais, pour m'amuser parce qu'il y en a plain des trucs comme ça, un petit editeur genre Notepad. Je veux donc, comme dans tout editeur, faire que dès qu'on fait un clique droit sur l'editorgadget en locurence dans mon cas, ça ouvre un menu contextuel. Mais là, ça ne marche pas.
Si quelqu'un pouvait m'aider svp.
Code : Tout sélectionner
Enumeration
#Fenetre
#Menu
#Contexte
#Menu2
#Editeur
#Nouveau
#Ouvrir
#Enregistrer
#Enregistrer_Sous
#Quitter
#Annuler
#Refaire
#Couper
#Copier
#Coller
#About
#TexteAbout
#LinkAbout
#ReTexteAbout
#OK
EndEnumeration
Global NomFichier.s,Titre.s
NomFichier.s="Sans Titre"
titre.s="Gansta93 Notepad"
Procedure EnregistrerSous()
Repeat
reg.s=SaveFileRequester("",NomFichier,"Fichier text(*.txt)|*.txt|Tous type de fichier(*.*)|*.*",0)
If reg
If FileSize(reg)>0
Select MessageRequester(Titre,"Le fichier "+reg+" existe déjà."+#crlf+"Voulez-vous le remplacer?"+#crlf+"Taille: "+Str(FileSize(reg))+".",#mb_yesno|#mb_IconExclamation|#mb_defbutton2)
Case #Idyes
If CreateFile(0,Reg)
WriteString(GetGadgetText(#Editeur))
CloseFile(0)
NomFichier=reg
sort=1
Else
MessageRequester("Erreur","Impossible d'écrire dans le fichier."+#crlf+"Vérifiez qu'e celui-ci n'est pas protègé en écriture, ou qu'il n'est pas utilisé actuellemant.",#mb_ok|#mb_iconStop)
EndIf
EndSelect
Else
If CreateFile(0,Reg)
WriteString(GetGadgetText(#Editeur))
CloseFile(0)
NomFichier=reg
sort=1
Else
MessageRequester("Erreur","Impossible d'écrire dans le fichier."+#crlf+"Vérifiez qu'e celui-ci n'est pas protègé en écriture, ou qu'il n'est pas utilisé actuellemant.",#mb_ok|#mb_iconStop)
EndIf
EndIf
Else
sort=1
EndIf
Until sort=1
EndProcedure
If ExamineDesktops()
Largeure=DesktopWidth(0)-100
Hauteure=DesktopHeight(0)-100
If OpenWindow(#Fenetre,0,0,Largeure,Hauteure,#pb_window_minimizegadget|#pb_window_maximizegadget|#pb_window_sizegadget|#pb_window_titlebar|#pb_window_systemmenu|#pb_window_screencentered,NomFichier+" - "+titre) And CreateMenu(#Menu,WindowID(#Fenetre)) And CreateStatusBar(0,WindowID(#Fenetre)) And CreateGadgetList(WindowID(#Fenetre))
MenuTitle("&Fichier")
MenuItem(#Nouveau,"&Nouveau"+#tabe+"Ctrl+N")
AddKeyboardShortcut(0,#pb_shortcut_control|#pb_shortcut_n,#Nouveau)
MenuItem(#Ouvrir,"&Ouvrir..."+#Tabe+"Ctrl+O")
AddKeyboardShortcut(0,#pb_shortcut_control|#pb_shortcut_o,#Ouvrir)
MenuItem(#Enregistrer,"&Enregistrer"+#Tabe+"Ctrl+S")
AddKeyboardShortcut(#Fenetre,#PB_Shortcut_Control|#PB_Shortcut_S,#Enregistrer)
MenuItem(#Enregistrer_Sous,"En®istrer Sous..."+#Tabe+"F12")
AddKeyboardShortcut(#Fenetre,#PB_Shortcut_F12,#Enregistrer_Sous)
MenuBar()
MenuItem(#Quitter,"&Quitter"+#Tabe+"Alt+F4")
MenuTitle("&Edition")
MenuItem(#Annuler,"&Annuler"+#Tabe+"Ctrl+Z")
MenuItem(#Refaire,"&Refaire"+#Tabe+"Ctrl+Y")
MenuBar()
MenuItem(#Couper,"Co&uper"+#Tabe+"Ctrl+X")
MenuItem(#Copier,"Co&pier"+#tabe+"Ctrl+C")
MenuItem(#Coller,"Col&ler"+#Tabe+"Ctrl+V")
MenuTitle("&?")
MenuItem(#About,"à &Propos de...")
If CreatePopupMenu(#Contexte)
MenuItem(#Annuler,"&Annuler"+#Tabe+"Ctrl+Z")
MenuItem(#Refaire,"&Refaire"+#Tabe+"Ctrl+Y")
MenuBar()
MenuItem(#Couper,"Co&uper"+#Tabe+"Ctrl+X")
MenuItem(#Copier,"Co&pier"+#tabe+"Ctrl+C")
MenuItem(#Coller,"Col&ler"+#Tabe+"Ctrl+V")
AddKeyboardShortcut(#Fenetre,#PB_Shortcut_Apps,#Contexte)
AddKeyboardShortcut(#Fenetre,#PB_Shortcut_Shift|#pb_Shortcut_F10,#Contexte)
EndIf
StatusBarText(0,0,Titre+" prait")
Edit=EditorGadget(#Editeur,0,0,Largeure,hauteure-30)
Repeat
If StringField(GetWindowTitle(#Fenetre),1," - ")<>NomFichier
SetWindowTitle(#Fenetre,NomFichier+" - "+Titre)
EndIf
ActivateGadget(#Editeur)
Select WaitWindowEvent()
Case #pb_eventclosewindow
quit=1
Case #pb_EventGadget
Select EventType()
Case #PB_EventType_RightClick
If EventGadgetID()=#Editeur
DisplayPopupMenu(#Contexte,WindowID(#Fenetre))
EndIf
EndSelect
Case #PB_EventMenu
Select EventMenuID()
Case #Nouveau
MessageRequester(Titre,"Désolé, mais cette fonction n'est pas installée.",#mb_ok|#mb_iconexclamation)
Case #Ouvrir
MessageRequester(Titre,"Désolé, mais cette fonction n'est pas installée.",#mb_ok|#mb_iconexclamation)
Case #Enregistrer
If FileSize(NomFichier)>0
If CreateFile(0,NomFichier)
WriteString(GetGadgetText(#Editeur))
CloseFile(0)
Else
MessageRequester("Erreur","Impossible d'écrire dans le fichier."+#crlf+"Vérifiez qu'e celui-ci n'est pas protègé en écriture, ou qu'il n'est pas utilisé actuellemant.",#mb_ok|#mb_iconStop)
EndIf
ElseIf NomFichier="Sans Titre"
EnregistrerSous()
Else
EnregistrerSous()
EndIf
Case #Enregistrer_Sous
EnregistrerSous()
Case #Quitter
quit=1
Case #Annuler
SendMessage_(Edit, #EM_UNDO, 0, 0)
Case #Refaire
SendMessage_(Edit, #EM_REDO, 0, 0)
Case #Couper
SendMessage_(Edit, #WM_CUT, 0, 0)
Case #Copier
SendMessage_(Edit, #WM_COPY, 0, 0)
Case #Coller
SendMessage_(Edit, #WM_PASTE, 0, 0)
Case #About
Largeure2=Largeure-100
Hauteure2=Hauteure-100
If OpenWindow(#About,0,0,Largeure2,Hauteure2,#PB_Window_SystemMenu|#pb_Window_titlebar|#pb_window_windowcentered,"à Propos de "+Titre,WindowID(#Fenetre)) And CreateGadgetList(WindowID(#About))
UseWindow(#About)
TextGadget(#TexteAbout,0,0,Largeure2/2,20,"Fait en PureBasic en 2004 par Gansta93. Pour aller sur Le Monde de Gansta93,")
HyperLinkGadget(#LinkAbout,largeure2/2+5,0,largeure2/2-5,20,"Cliquez ici.",RGB(0,0,255))
TextGadget(#ReTexteAbout,0,25,Largeure2,20,"Merci d'utiliser "+Titre+"!",#PB_Text_Center)
ButtonGadget(#OK,Largeure2/2,55,20,20,"OK",#PB_Text_Center)
RemoveKeyboardShortcut(#About,#pb_shortcut_all)
AddKeyboardShortcut(#About,#PB_shortcut_escape,#OK)
AddKeyboardShortcut(#About,#PB_Shortcut_Return,#OK)
Repeat
ActivateGadget(#OK)
Select WaitWindowEvent()
Case #pb_eventclosewindow
close=1
Case #pb_eventmenu
Select EventMenuID()
Case #OK
close=1
EndSelect
Case #pb_eventgadget
Select EventGadgetID()
Case #LinkAbout
RunProgram("http://www.gansta93.com")
Case #OK
close=1
EndSelect
EndSelect
Delay(20)
Until close=1
FreeGadget(#texteAbout)
FreeGadget(#linkAbout)
FreeGadget(#ReTexteAbout)
FreeGadget(#OK)
CloseGadgetList()
RemoveKeyboardShortcut(#About,#PB_Shortcut_All)
CloseWindow(#About)
UseWindow(#Fenetre)
ActivateWindow()
close=0
Else
ShellAbout_(WindowID(#Fenetre),Titre,"Copyright "+#Copyright+" 2004 par Gansta93. Tous droits réservés.",0)
EndIf
Case #Contexte
DisplayPopupMenu(#Contexte,WindowID(#Fenetre))
EndSelect
EndSelect
Delay(20)
Until quit=1
Else
MessageRequester("Erreur","Erreur lors de la création de la fenêtre.",#mb_ok|#mb_iconstop)
EndIf
Else
MessageRequester("Erreur","Impossible d'obtenire les résolutions d'écrans.",#mb_ok|#mb_iconstop)
EndIf
End