


Code : Tout sélectionner
; PureBasic Visual Designer v3.80 build 1249
;- Window Constants
;
Enumeration ;Les enumeration des menus pour les reprendre apres.
#Window_1
;- MenuBar Constants
#MenuBar_4
;ouvre le fichier d'aide
#Aide
;-tooltip constant
#NORTH = 1 : #EAST = 2 : #SOUTH = 3 : #WEST = 4
;- Saisi du texte (gadget)
#Gadget_2
#EditorGadget
#MENU_27
#MENU_26
#MENU_29
#MENU_25
#MENU_35
#MENU_41
#MENU_44
#MENU_45
#MENU_46
#MENU_49
#MENU_50
#MENU_53
#MENU_58
#MENU_55
#MENU_56
#MENU_59
#MENU_64
#MENU_75
;- StatusBar Constants
#StatusBar_0
EndEnumeration
Procedure Open_Window_1()
;/ 1° Pas besoin d'être à la fois #ScreenCentered et #WindowCentered
If OpenWindow(#Window_1, 0, 0, 500, 400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Garzul note pad")
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(100, 120, 255)))
;/ 2° Si tu veux pouvoir redimensionner les différents gadgets, il faut que tu leur
;/ donne leur position et leur dimension par rapport à la fenêtre. Il faut également
;/ tenir compte des dimensions de la StatusBar, si il y en a une
If CreateGadgetList(WindowID(0)) ;je cree le gadget saisie de texte dans windows
StringGadget(0,10,10,WindowWidth()-20,WindowHeight()-60,"",#PB_String_MultiLine|#ES_AUTOVSCROLL|#WS_VSCROLL|#WS_HSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT) ;Je cree la scrolbar ainsi que le retour a la ligne
;terminer pour le saisie de texte
;message tooltip dinfo
ToolTip(GadgetID(0), "Bulle d'aides" + Chr(10) + "Ici marquer votre texte", "Bienvenue sur le garzul note &1", #EAST, RGB(150, 200, 0), RGB(255, 255, 255))
If CreateMenu(#MenuBar_4, WindowID())
MenuTitle("Fichier")
MenuItem(#MENU_27, "Nouveau")
MenuItem(#MENU_26, "Ouvrir")
MenuItem(#MENU_29, "Enregistrer")
MenuItem(#MENU_25, "Enregistrer sous ...")
MenuBar()
MenuItem(#MENU_35, "Imprimer")
MenuBar()
MenuItem(#MENU_41, "Quitter")
MenuTitle("Edition")
MenuItem(#MENU_44, "Couper")
MenuItem(#MENU_45, "Copier")
MenuItem(#MENU_46, "Coller")
MenuItem(#MENU_49, "Supprimer")
MenuBar()
MenuItem(#MENU_50, "Selectioner tout")
MenuItem(#MENU_53, "Heure/Dates")
MenuItem(#MENU_58, "Couleur du texte")
MenuTitle("Format")
MenuItem(#MENU_55, "Polices")
MenuItem(#MENU_56, "Retour auto a la ligne")
MenuTitle("Affichage")
MenuItem(#MENU_59, "Barre d'etat")
MenuTitle("?")
MenuItem(#MENU_64, "Aide")
MenuBar()
MenuItem(#MENU_75, "A propos du garzul note pad")
EndIf
If CreateStatusBar(#StatusBar_0, WindowID())
AddStatusBarField(550)
StatusBarText(#StatusBar_0, 0, "Bienvenue sur le garzul note")
AddStatusBarField(450)
EndIf
If CreateGadgetList(WindowID())
EndIf
EndIf
ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60)
EndIf
EndProcedure
; =====================================
;- Debut du programme
; On initialise tous d'abord les valeurs
; On affiche la fenêtre les boutons
; On lance la boucle de gestion des évènements de la fenêtre ouverte
;******************* faut le mettre avant la boucle !!!
Open_Window_1()
Global FileName.s
; If CreateStatusBar(#StatusBar_0, WindowID())
; AddStatusBarField(WindowWidth()) ;<--- La aussi, il faut donner la dimension de la fenêtre
; StatusBarText(#StatusBar_0, 0, "field")
; EndIf
; *****************************************
Repeat
Select WaitWindowEvent()
; #PB_Event_SizeWindow détecte si les dimensions de la fenêtre ont changées
Case #PB_Event_CloseWindow
result = MessageRequester("ATTENTION","Vous quittez sans enregistrez ,voulez vous enregistrez avant de partir?",#PB_MessageRequester_yesno)
If result <> 6 ; si il n'a pa clicker sur oui
quit = 1 ; on quitte
EndIf
Case #PB_Event_SizeWindow
ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60)
;/ Si tu mets la StatusBar dans la boucle au niveau de l'evenement #PB_Event_SizeWindow
;/ elle est réactualisée au fur et à mesure que tu redimensionne la fenêtre.
;/ C'est pas très correct, comme méthode, mais ça évite de passer par une CallBack
;/ Et si tu as plusieurs champs dans la status, ils sont redimensionnés en proportion.
FreeStatusBar(#StatusBar_0)
If CreateStatusBar(#StatusBar_0, WindowID())
AddStatusBarField(WindowWidth()/3)
AddStatusBarField((WindowWidth()/3)*2) ;<--- La aussi, il faut donner la dimension de la fenêtre
StatusBarText(#StatusBar_0, 0, "")
EndIf
;- Choisir l'ouverture des menu cool:)
Case #PB_Event_Menu
Select EventMenuID()
;-pour choisir un fichier
Case #MENU_26
FileName.s = OpenFileRequester("Choisissez un fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|All files (*.*)|*.*|rtf (*.rtf)|*.rtf" , 0)
OpenFile(0,FileName.s)
Repeat
content.s + ReadString()
Until Eof( 0 )
SetGadgetText(tongadget, content)
;-pour imprimer
Case #MENU_35
If PrintRequester() And StartPrinting("garzul note") And StartDrawing(PrinterOutput())
Locate(WindowWidth()-20,WindowHeight()-60)
DrawText(GetGadgetText(GADGET))
TextLength(GADGET$)
StopDrawing()
StopPrinting()
EndIf
;pour effacer
Case #MENU_49
SendMessage_(#WM_Clear,0,0,0)
SetGadgetText(tongadget, content)
;quitter
Case #MENU_41
result = MessageRequester("ATTENTION","Vous quittez sans enregistrez ,voulez vous enregistrez avant de partir?",#PB_MessageRequester_yesno)
If result <> 6 ; si il n'a pa clicker sur oui
quit = 1 ; on quitte
EndIf
;-definition de la police
Case #MENU_55
Result = FontRequester(FontName$, FontSize, #PB_FontRequester_Effects)
If Result
If LoadFont(0,SelectedFontName(),SelectedFontSize(),SelectedFontColor())
FontName$ = SelectedFontName()
FontSize = SelectedFontSize()
FontColor = SelectedFontColor()
FontStyle = SelectedFontStyle()
SetGadgetFont(EditorGadget,FontID())
EndIf
EndIf
;la date
Case #MENU_53
Date$ = FormatDate("%dd/%mm/%yyyy", Date())
Time$ = FormatDate("%hh:%ii:%ss", Date())
MessageRequester("Garzul note .date/heure", "Date: "+Date$+Chr(10)+"Time: "+Time$, 0)
;cree le a propros
Case #MENU_75
MessageRequester("A propos de ..." ,"VERSION : Garzul note pad 1.00")
;pour enregistrer
Case #MENU_25
FileName.s = SaveFileRequester("Sauvegarder votre fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt|All files (*.*)|*.*" , 0)
CreateFile(1, FileName)
content.s = GetGadgetText(tongadget)
WriteString(content)
MessageRequester("Confirmation" ,"Vous avez bien enregistrer votre fichier.",#PB_MessageRequester_Ok)
;pour enregistrer sous
Case #MENU_29
If FileName = ""
FileName = SaveFileRequester("Sauvegarder votre fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt|All files (*.*)|*.*" , 0)
EndIf
If FileName
EndIf
;-cree l'ouverture de l'aide
Case #MENU_64
RunProgram("help1.exe", "", "")
;definition du sous menu nouveau
Case #MENU_27
MessageRequester("ATTENTION","Vous recommencer un nouveau projet.", #PB_MessageRequester_Ok)
SetGadgetText(tongadget,"Vous avez recomencer votre projet")
;ouvrir un menu de choix de couleur uniquement
Case #MENU_58
ColorRequester()
; ...
EndSelect
Debug "menu numero "+Str(menuID):; cette ligne va afficher le numero du menu choisi !!
; a toi dans faire ce que tu veux !!
;fin des ouverture des menu
Case #PB_Event_Gadget
GadgetID = EventGadgetID(): ; lequel ??
EndSelect
Debug GadgetID
StatusBarText(#StatusBar_0, 0, FormatDate("%dd/%mm/%yyyy", Date()) + " " + FormatDate("%hh:%ii:%ss", Date()))
Until Quit
End