Publié : dim. 27/juil./2008 5:49

Code : Tout sélectionner
; Author: Andre Beer / PureBasic Team modifié par KCC et remodifier par MetalOS :D
Declare boiteaFichier()
Global Path.s = "C:\"
Global file.s
Global IdGadgetSurvoler
Procedure xcm(x.f)
x = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn x
EndProcedure
Procedure ycm(x.f)
x = x * (PrinterPageHeight()/29.7) ; 29,7cm A4
ProcedureReturn x
EndProcedure
OpenWindow(0,175,0,400,300,"Editeur Infos", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
EditorGadget(1,0,0,400,280)
If CreateMenu(2,WindowID(0))
MenuTitle("Fichier")
MenuItem(3,"Nouveau")
MenuBar()
MenuItem(4,"Ouvrir")
MenuItem(5,"Sauver")
MenuItem(6,"Imprimer")
MenuBar()
MenuItem(7,"Quitter")
EndIf
If CreatePopupMenu(10) ; here the creating of the pop-up menu begins...
;MenuItem(40, "Annuler")
;MenuBar() ;pas de traitement de du mode annuler enfin pour le moment
MenuItem(41, "Couper")
MenuItem(42, "Copier")
MenuItem(43, "Coller")
EndIf
SetActiveGadget(1)
Repeat
GetCursorPos_(@point.POINT)
Handle = WindowFromPoint_(point\x,point\y)
IdGadgetSurvoler = GetDlgCtrlID_(Handle) ; Id du gadget survolé
Select WaitWindowEvent() ; check for window events
Case #WM_RBUTTONDOWN ; right mouse button was clicked =>
If IdGadgetSurvoler = 1
DisplayPopupMenu(10,WindowID(0),point\x,point\y) ; now display the popup-menu
EndIf
Case #PB_Event_Menu ; an item of the popup-menu was clicked
Select EventMenu() ; get the clicked menu item...
Case 3
ClearGadgetItemList(1)
SetActiveGadget(1)
Case 4
file = OpenFileRequester("Chargement du Fichier",Path,"*.txt|*.txt",1)
f=ReadFile(1, file)
ClearGadgetItemList(1)
;####changement pour la restoration d'un fichier de plus d'une ligne
Repeat
buffer$=ReadString(1)
AddGadgetItem(1,-1,buffer$)
Until Loc(1)=Lof(1) Or Eof(1)<>0
;###############################################################
CloseFile(1)
Case 5
boiteaFichier()
Case 6 ;impression de x pages avec numeros par kernadec
yhaut = 300
xleft = 300
p=0
If PrintRequester()
If StartPrinting("Multipages av n°")
Font=ycm(((8*0.090)/2.5))
LoadFont(1,"Arial",Font)
If StartDrawing(PrinterOutput())
DrawingFont(FontID(1))
For n=0 To CountGadgetItems(1)
yhaut=yhaut+(Font*1.5)
DrawText(xleft,yhaut,GetGadgetItemText(1,n-1,0))
If yhaut>ycm(780*0.035)
p=p+1 ; 29.7cm/848pixels=0.035 - 21.0cm/600pixels=0.035
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de bas page droite
NewPrinterPage()
yhaut=300
EndIf
Next n
p=p+1
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de derniere page
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf
Case 7
Quit = 1
Case 40 : Debug "Menu: Annuler"
Case 41 : Debug "Menu: Couper"
;Code Couper
Vide$ = ""
SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel)
buffer$ = Space(EndSel-StartSel)
SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@buffer$)
ClearClipboard()
SetClipboardText(buffer$)
SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@Vide$)
;Fin Couper
Case 42 : Debug "Menu: Copier"
;Code Copier
SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel)
buffer$ = Space(EndSel-StartSel)
SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@buffer$)
ClearClipboard()
SetClipboardText(buffer$)
;Fin Copier
Case 43 : Debug "Menu: Coller"
;Code coller
buffer$ = GetClipboardText()
SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@buffer$)
;Fin de code Coller
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
Procedure boiteaFichier() ; procedure Ecrite par CLS juillet 2008
Repeat
file.s = SaveFileRequester("Fichier destination", Path, "*.txt|*.txt",1)
If GetExtensionPart(file)=""
file=file+".txt"
EndIf
If file
If FileSize(file) > -1
Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel)
Case #PB_MessageRequester_Yes
CopyFile(file, Left(file ,Len(file)-4)+ ".bak")
DeleteFile(file)
Status = 3
Case #PB_MessageRequester_Cancel
Status = 1
Case #PB_MessageRequester_No
Status = 2
EndSelect
EndIf
EndIf
Until Status => 0
; Traitement du code de sortie
Select Status
Case 0 :
If CreateFile(0, file)
WriteStringN(0,GetGadgetText(1))
CloseFile(0)
Else
Debug "Erreur lors de l'écriture du fichier"
EndIf
Case 1 : Debug "Appui sur Cancel"
Case 2 : Debug "Appui sur non"
Case 3
If CreateFile(0, file)
WriteStringN(0,GetGadgetText(1))
CloseFile(0)
Else
Debug "Erreur lors de l'écriture du fichier"
EndIf
EndSelect
EndProcedure
; IDE Options = PureBasic 4.20 (Windows - x86)
; CursorPosition = 127
; FirstLine = 76
kernadec a écrit :ce mode de lecture est le bon
plus d'oubli de derniere ligne
remplacer les lignes 49 à 54 par ceci:Code : Tout sélectionner
Repeat buffer$=ReadString(1) AddGadgetItem(1,-1,buffer$) Until Loc(1)=Lof(1) Or Eof(1)<>0
Chris a écrit :Te plains pas, il pourrait aussi créer un nouveau topic à chaque patch
Pourquoi tant de haine ??Dobro a écrit :Chris a écrit :Te plains pas, il pourrait aussi créer un nouveau topic à chaque patch
t'es pas un peu cherche merde toi ?Ouaf-Ouaf a écrit :Pourquoi tant de haine ??
ben oui c'est super pratique la touche editer heureusement !!kernadec a écrit :merci
Mr dobro
pour le {Editer} je ne connaissais pas
et je viens de l'utliser. merci
je doit dire que sur ce forum et dans un bon nombre de topics,
on rencontre ce genre de bout de code a ajouter