petit programme
Publié : jeu. 24/nov./2005 22:45
voila , je vien de passer 5/10h dessus (je commence) et je vous ai fait un petit programme que vous améliorerez surement :
il n'est pas tre bien présentez (le code) sa serai sympa que qql le remette en bonne état lol
voici le fichier texte :
merci de me retourné tout cela amélioré
sur ce , je vous souhaite une bonne , tre bonne programation[/code][/quote]
Code : Tout sélectionner
;======================================
;- declaration des constantes
; il faut donner au maximum un nom a la constantes qui représente son utilité
; on déclare chaque type de constantes dans une rubrique
; le(s) fenetre(s)
#fenetre_principale = 0
#fenetre_secondaire = 1
; Les Gadgets :
; *Gadgets pour la fenetre principale
#gadget_bouton_ok = 0 ;sert un peu a rien
#gadget_bouton_quitter = 1 ;quitte le programme
#gadget_bouton_fichier_texte = 2 ;ouvre le fichier texte
#gadget_bouton_fenetre_secondaire = 3 ;ouvre la fenetre secondaire
; *Gadget(s) pour la fenetre secondaire
#gadget_bouton_quitter_fenetre_secondaire = 4 ;ferme la fenetre secondaire
;======================================
;- declaration des variables globales, des strutures, des listes ou tableau, ...
;======================================
;- declaration des procedures
Procedure Ouvre_Fenetre_principale()
If OpenWindow(#fenetre_principale, 0, 0, 250, 170, #PB_Window_SystemMenu | #PB_Window_WindowCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "fenêtre principale")
; on créer la liste des éléments (gadget) de la fenètre
If CreateGadgetList(WindowID())
; on crée 4 boutons
ButtonGadget(#gadget_bouton_ok, 12, 10, 225, 25, "Ok")
ButtonGadget(#gadget_bouton_quitter, 12, 130, 225, 25, "Fermer")
ButtonGadget(#gadget_bouton_fenetre_secondaire, 12, 50, 225 ,25, "Ouvrir Une Fenetre Secondaire")
ButtonGadget(#gadget_bouton_fichier_texte, 12, 90, 225, 25, "Ouvrir Un Fichier Texte")
EndIf
EndIf
EndProcedure
Procedure Gestion_bouton_OK(Numero_bouton.l)
MessageRequester("Info", "Vous avez appuyé sur le bouton " , 0 + 4 * 16)
; pour les paramètre d'un message requester, voir mon code source "messagerequesterplus()"
EndProcedure
Procedure Gestion_bouton_fenetre_secondaire(Numero_bouton.l)
;Procedure Ouvre_Fenetre_secondaire()
If OpenWindow(#fenetre_secondaire, 0, 0, 240, 150, #PB_Window_SystemMenu | #PB_Window_WindowCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "fenêtre secondaire")
; on créer la liste des éléments (gadget) de la fenètre
If CreateGadgetList(WindowID())
; on crée 1 boutons
ButtonGadget(#gadget_bouton_quitter_fenetre_secondaire, 12, 10, 225, 25, "Fermer")
EndIf
EndIf
EndProcedure
Procedure Gestion_bouton_fichier_texte(Numero_bouton.l)
;MessageRequester("Info", "Vous avez ouvert un fichier texte " , 0 + 4 * 16)
NomFichier$ = "éditeur de texte.exe"
RunProgram(NomFichier$)
EndProcedure
;=====================================
;- Debut du programme
; On initialise tous d'abord les valeurs
; On affiche la fenêtre les boutons
Ouvre_Fenetre_principale()
; On lance la boucle de gestion des évènements de la fenêtre ouverte
Repeat
Event = WaitWindowEvent()
; Mettre ici la gestion des évènements
If Event = #PB_EventGadget
Select EventGadgetID(); boutons, zone de texte, ...
Case #gadget_bouton_ok
; l'avantage de mettre une procedure est de pouvoir la réutiliser pour un autre évènement
; par exmple : un bouton et un menu qui doivent réalisé la même chose
Gestion_bouton_OK(1)
Case #gadget_bouton_quitter
Event = #PB_EventCloseWindow ; on stocke dans event l'évènement quitter, ainsi l'appui sur le bouton quitter rvient à l'appui sur la croix
Case #gadget_bouton_quitter_fenetre_secondaire
CloseWindow(#fenetre_secondaire); on stocke dans event l'évènement quitter, ainsi l'appui sur le bouton quitter rvient à l'appui sur la croix
;Gestion_bouton_quitter_fenetre_secondaire(1)
Case #gadget_bouton_fenetre_secondaire
; l'avantage de mettre une procedure est de pouvoir la réutiliser pour un autre évènement
; par exmple : un bouton et un menu qui doivent réalisé la même chose
Gestion_bouton_fenetre_secondaire(1)
Case #gadget_bouton_fichier_texte
; l'avantage de mettre une procedure est de pouvoir la réutiliser pour un autre évènement
; par exmple : un bouton et un menu qui doivent réalisé la même chose
Gestion_bouton_fichier_texte(1)
EndSelect
EndIf
Until Event = #PB_EventCloseWindow; si on appui sur la croix, on ferme le programme
End; Fin du programme
voici le fichier texte :
Code : Tout sélectionner
;/Constantes Window
Enumeration
#Window_0
EndEnumeration
;/Constantes Gadget
Enumeration
#Editeur
EndEnumeration
Enumeration
#Menu
EndEnumeration
Enumeration
#M_Ouvrir
#M_sauvegarder
EndEnumeration
Procedure StreamFileIn_Callback(hFile, pbBuff, cb, pcb)
ProcedureReturn ReadFile_(hFile, pbBuff, cb, pcb, 0)!1
EndProcedure
Procedure StreamFileOut_Callback(hFile, pbBuff, cb, pcb)
ProcedureReturn WriteFile_(hFile, pbBuff, cb, pcb, 0)!1
EndProcedure
Procedure FileStreamIn(FileID.l, File.s, gadget.l, Mode.l)
Protected File
Protected FileID
Protected gadget
Protected StreamData.EDITSTREAM
If Mode <> #SF_RTF : Mode = #SF_TEXT : EndIf
If ReadFile(FileID, File)
StreamData\dwCookie = UseFile(FileID)
StreamData\dwError = #Null
StreamData\pfnCallback = @StreamFileIn_Callback()
SendMessage_(GadgetID(gadget), #EM_STREAMIN, Mode, @StreamData)
CloseFile(FileID)
EndIf
EndProcedure
Procedure FileStreamOut(FileID.l, File.s, gadget.l, Mode.l)
Protected File
Protected FileID
Protected gadget
Protected StreamData.EDITSTREAM
If Mode <> #SF_RTF : Mode = #SF_TEXT : EndIf
If CreateFile(FileID, File)
StreamData\dwCookie = UseFile(FileID)
StreamData\dwError = #Null
StreamData\pfnCallback = @StreamFileOut_Callback()
SendMessage_(GadgetID(gadget), #EM_STREAMOUT, Mode, @StreamData)
CloseFile(FileID)
EndIf
EndProcedure
If OpenWindow(#Window_0, 0, 0, 400, 400, #PB_Window_SystemMenu | #PB_Window_WindowCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "Editeur de texte",0)
If CreateMenu(#Menu, WindowID(#Window_0))
MenuTitle("Fichiers")
MenuItem(#M_Ouvrir, "Ouvrir")
MenuItem(#M_sauvegarder, "sauvegarder")
EndIf
If CreateGadgetList(WindowID(#Window_0))
EditorGadget(#Editeur, 0, 0, 600, 545, "Quitter")
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
Select EventMenuID()
Case #M_Ouvrir
Fichier$ = OpenFileRequester("Ouvrir un fichier","C:\","Fichiers texte (*.txt)|*.txt",0)
If Fichier$
FileStreamIn(0, Fichier$, #Editeur, #SF_TEXT)
EndIf
Case #M_Sauvegarder
Fichier$ = SaveFileRequester("Sauver un fichier","C:\","Fichiers texte (*.txt)|*.txt",0)
If Fichier$ <> ""
FileStreamOut(0, Fichier$ + ".txt", #Editeur, #SF_TEXT)
EndIf
EndSelect
Case #PB_EventCloseWindow : quit = 1
EndSelect
Until quit = 1
merci de me retourné tout cela amélioré

sur ce , je vous souhaite une bonne , tre bonne programation[/code][/quote]