Il fonctionne très bien avec les fichiers (*.rtf), de plus si les lignes sont trop larges, elles sont automatiquement scindées en plusieurs lignes ce qui est très pratique.
Ici un exemple qui permet d'avoir un aperçu de l' EditorGadget.
Libre à chacun de l'adapter.
Cela donnera peut-être des idées à Fred pour son éditeur.
Code : Tout sélectionner
; Application autour du code de Freak
; Exemple d'un Aperçu avant impression de l'éditeur
#OLECMDID_PRINT= 6
#OLECMDID_PRINTPREVIEW= 7
#OLECMDID_PASTE = 13
#OLECMDID_SELECTALL = 17
Enumeration 0
#OLECMDEXECOPT_DODEFAULT
#OLECMDEXECOPT_PROMPTUSER
#OLECMDEXECOPT_DONTPROMPTUSER
#OLECMDEXECOPT_SHOWHELP
EndEnumeration
Enumeration 0
#Window
#Browser
EndEnumeration
Enumeration 0
#WebGadget
#Editor
#Load
#Preview
EndEnumeration
Procedure lecture(fichier.s)
If ReadFile(0, fichier)
While Eof(0)=0
Texte$ = Texte$+ReadString()+Chr(13)+Chr(10)
Wend
SetGadgetText(#Editor, Texte$)
CloseFile(0)
Else
MessageRequester("PureBasic", "Erreur", 0)
EndIf
EndProcedure
Procedure Print_Preview(id.l)
If ExamineDesktops()
Width=DesktopWidth(0)
Height=DesktopHeight(0)
flags= #PB_Window_MaximizeGadget | #PB_Window_Invisible
If OpenWindow(#Browser, 0, 0, width, height,flags, "WebBrowser")
If CreateGadgetList(WindowID(#Browser))
WebGadget(#WebGadget, 10, 40, 780, 750, "about:.")
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#WebGadget), #GWL_USERDATA)
Repeat
While WindowEvent(): Wend
Delay(1)
WebObject\get_Busy(@IsBusy.l)
Until IsBusy = 0
SendMessage_(GadgetID(id), #EM_SETSEL, 0, -1)
SendMessage_(GadgetID(id), #WM_COPY, 0, 0)
SendMessage_(GadgetID(id), #EM_SETSEL, -1, -1)
WebObject\ExecWB( #OLECMDID_SELECTALL, #OLECMDEXECOPT_DODEFAULT, 0, 0)
WebObject\ExecWB(#OLECMDID_PASTE, #OLECMDEXECOPT_DODEFAULT, 0, 0)
WebObject\ExecWB( #OLECMDID_PRINTPREVIEW, #OLECMDEXECOPT_PROMPTUSER, 0, 0)
EndIf
EndIf
EndIf
EndProcedure
If OpenWindow(#Window,0,0,400,400,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (#Editor,10,40,380,340,#PB_Container_Raised)
ButtonGadget(#Load, 10, 10, 100, 20, "Ouvrir un Fichier")
ButtonGadget(#Preview, 140, 10, 100, 20, "Print_Preview")
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case #Load
file$ = OpenFileRequester("Please choose file to load", "c:\","*.*|*.*", 0)
lecture(file$)
Case #Preview
CloseWindow(#Browser)
Print_Preview(#Editor)
EndSelect
Case #WM_CLOSE
Quit.l=1
EndSelect
Until Quit=1
EndIf