Bon je chercherai la solution plus tard en attendant je vais mettre des flèche, merci nico de ton intéressement
J'ai supprimé les commandes richedit et j'utilise la bibliothèque LibEditorPlus
Code : Tout sélectionner
Global Titre$, WindowID, Version$, fichier_recent, pos.CHARRANGE, NBLang, LibName$, nPL$, DLL$, Image1, Image2 , color , Image3 , Image4 , Image5 , Image6 , Police.s , TaillePolice, ColorText , ColorKeyWords
; AJouter la possibilité de mettre plusieurs langues dans l'aide
; Empecher l'ajout d'un dossier dont le nom existe déjà
; finir la coloration syntaxique
Titre$ = "PureAide"
Version$ = "1.00"
Color=RGB(255,255,223) ; Background
Police.s="Comic Sans MS"
TaillePolice=12
ColorText=RGB(62, 88, 125)
ColorKeyWords=RGB(149, 13, 65)
OnErrorGoto(?CatchError)
;-( Enumeration )
Enumeration
; font
#Font_0
; fenetre
#Window_0
; Popupmenu
#Popup_0
#Popup_1
#Popup_2
#Popup_3
#Popup_4
#Popup_5
#Popup_6
; Menu
#MenuBar_0
#MENU_1
#MENU_2
#MENU_3
#MENU_4
#MENU_7
#MENU_8
#MENU_10
#MENU_11
#MENU_12
#MENU_14
#MENU_13
#MENU_17
#MENU_18
#MENU_19
; Shorcut
#Enter
; Outil Tree
#Ajouter
#Supprimer
#Bas
#Haut
#Gauche
#Droite
; Gadget menu
#Centrer
#Titre
#Couleur
#Gras
#Italic
#Lien
#Image
#Lib
#DLL
#Fonction
#AideRapide
#Arguments
; Gadget
#Tree_0
#String_1
#Frame3D_1
#Editor_0
#Frame3D_2
#Frame3D_3
#Editor_1
#Editor_3
#Frame3D_6
#Text_0
#String_3
#Text_1
#Text_2
#Button_0
; Barre de status
#StatusBar_0
; Image
#Image_1
#Image_2
#Image_3
#Image_4
#Image_5
#Image_6
;Preference
#Window_1
#CheckBox_100
#Button_100
#Button_101
#Button_102
#Button_103
#Image_7
#Image_8
#Image_9
#Image_100
#Image_101
#Image_102
#String_100
EndEnumeration
;_)
Image1 = CatchImage(#Image_1, ?Image1)
Image2 = CatchImage(#Image_2, ?Image2)
Image3 = CatchImage(#Image_3, ?Image3)
Image4 = CatchImage(#Image_4, ?Image4)
Image5 = CatchImage(#Image_5, ?Image5)
Image6 = CatchImage(#Image_6, ?Image6)
DataSection
Image1 :
IncludeBinary "Dossier.ico"
Image2 :
IncludeBinary "Page.ico"
Image3:
IncludeBinary "Bas.ico"
Image4 :
IncludeBinary "Haut.ico"
Image5 :
IncludeBinary "Gauche.ico"
Image6 :
IncludeBinary "Droite.ico"
EndDataSection
;- Nombre de code language
NBLang = 81
Dim Language$(NBLang)
Procedure.s InputRequester2(title.s, Message.s, DefaultString.s)
ParentID = WindowID()
DisableWindow(ParentID, #True)
img = CreateImage(#PB_Any, 100, 100)
UseImage(img)
StartDrawing(ImageOutput())
Message = ReplaceString(ReplaceString(Message, #CRLF$, Chr(10)), Chr(13), Chr(10))
nbl = CountString(Message, Chr(10)) + 1
If nbl > 1
For a = 1 To nbl
If TextLength(StringField(message, a, Chr(10))) > lon
lon = TextLength(StringField(message, a, Chr(10))) / 1.2
EndIf
Next
Else
lon = TextLength(message) / 1.2
EndIf
ht = nbl * 13
StopDrawing()
FreeImage(img)
win = OpenWindow(#PB_Any, 0, 0, lon, 80 + ht, #PB_Window_ScreenCentered, title)
CreateGadgetList(WindowID(win))
AddKeyboardShortcut(win, #PB_Shortcut_Return, #Enter)
WindowWidth = WindowWidth()
WindowHeight = WindowHeight()
TextGadget(#PB_Any, 10, 10, WindowWidth - 20, ht, Message)
string = StringGadget(#PB_Any, 5, WindowHeight - 60, WindowWidth - 10, 20, DefaultString)
button = ButtonGadget(#PB_Any, (WindowWidth - 60) / 2, WindowHeight - 30, 60, 20, "OK", #PB_Button_Default)
SetWindowPos(WindowID(win), #HWND_TOP)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenuID()
Case #Enter
Result$ = GetGadgetText(string)
quit = 1
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case button
Result$ = GetGadgetText(string)
quit = 1
EndSelect
EndSelect
Until quit = 1
CloseWindow(win)
DisableWindow(ParentID, #False)
SetWindowPos(ParentID, #HWND_TOP)
ProcedureReturn Result$
EndProcedure
#TVN_BEGINDRAG = -407
#TVN_BEGINRDRAG = -408
#TVS_DISABLEDRAGDROP = $10
#Drag_LeftMouse = 1
#Drag_RightMouse = 2
#ListIcon = 3
Global hWndTV.l, DropProc.l, DragDropMode.l, hDragIml.l, DragItem.l
Procedure.l DragDropCallback(Window.l, Message.l, wParam.l, lParam.l)
Protected DoDrag.l, DropX.l, DropY.l, hItem.l, hItem2.l, dItem.l
result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_NOTIFY
*lp.NMHDR = lParam
If *lp\code = #TVN_BEGINDRAG And (DragDropMode & #Drag_LeftMouse) : DoDrag = #True : EndIf
If *lp\code = #TVN_BEGINRDRAG And (DragDropMode & #Drag_RightMouse) : DoDrag = #True : EndIf
If DoDrag
*pnmtv.NMTREEVIEW = lParam
DragItem = *pnmtv\itemNew\hItem
hDragIml = SendMessage_(hWndTV, #TVM_CREATEDRAGIMAGE, 0, DragItem)
SendMessage_(hWndTV, #TVM_SELECTITEM, #TVGN_CARET, #Null)
ImageList_BeginDrag_(hDragIml, 0, 0, 0)
ImageList_DragEnter_(GetParent_(hWndTV), 0, 0)
ImageList_DragShowNolock_(#True)
ImageList_DragLeave_(hWndTV)
ShowCursor_(#False)
SetCapture_(GetParent_(hWndTV))
SendMessage_(hWndTV, #TVM_SELECTITEM, #TVGN_CARET, DragItem)
EndIf
Case #WM_MOUSEMOVE
If hDragIml
DropX = PeekW( @lParam)
DropY = PeekW( @lParam + 2)
ImageList_DragMove_(DropX, DropY + 20)
ImageList_DragShowNolock_(#False)
ImageList_DragShowNolock_(#True)
EndIf
Case #WM_LBUTTONUP
If hDragIml And (DragDropMode & #Drag_LeftMouse)
ImageList_EndDrag_()
ReleaseCapture_()
ShowCursor_(#True)
ImageList_Destroy_(hDragIml)
hDragIml = #False
dItem = 0
hItem = SendMessage_(hWndTV, #TVM_GETNEXTITEM, #TVGN_ROOT, 0)
While hItem <> DragItem
hItem2 = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_CHILD, hItem)
Repeat
If hItem2 = #Null : hItem2 = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_NEXT, hItem) : EndIf
If hItem2 = #Null : hItem = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_PARENT, hItem) : EndIf
Until hItem2 <> #Null
hItem = hItem2
dItem + 1
Wend
CallFunctionFast(DropProc, WindowMouseX(), WindowMouseY(), #Drag_LeftMouse, dItem)
EndIf
Case #WM_RBUTTONUP
If hDragIml And (DragDropMode & #Drag_RightMouse)
ImageList_EndDrag_()
ReleaseCapture_()
ShowCursor_(#True)
ImageList_Destroy_(hDragIml)
hDragIml = #False
dItem = 0
hItem = SendMessage_(hWndTV, #TVM_GETNEXTITEM, #TVGN_ROOT, 0)
While hItem <> DragItem
hItem2 = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_CHILD, hItem)
Repeat
If hItem2 = #Null : hItem2 = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_NEXT, hItem) : EndIf
If hItem2 = #Null : hItem = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_PARENT, hItem) : EndIf
Until hItem2 <> #Null
hItem = hItem2
dItem + 1
Wend
CallFunctionFast(DropProc, WindowMouseX(), WindowMouseY(), #Drag_RightMouse, DragItem)
EndIf
EndSelect
ProcedureReturn result
EndProcedure
Procedure.l EnableDragDrop(TVGadget.l, DragMode.l, DropProcedure.l)
Protected Style.l, hIml.l
hWndTV = GadgetID(TVGadget)
DropProc = DropProcedure
DragDropMode = DragMode
Style = GetWindowLong_(hWndTV, #GWL_STYLE)
Style = Style & ( ~#TVS_DISABLEDRAGDROP)
SetWindowLong_(hWndTV, #GWL_STYLE, Style)
SetWindowCallback( @DragDropCallback())
ProcedureReturn #True
EndProcedure
Procedure DropProcedure(X.l, Y.l, Button.l, Item.l)
MSGP("Fonction future", "La fonction 'Drag and drop' pour trier directement à la souris les éléments de la liste sera insérée dans la prochaine version :)",0,4)
If Button = #Drag_LeftMouse
gx = GadgetX(#tree_0)
gy = GadgetY(#Tree_0)
lx = GadgetWidth(#Tree_0)
ly = GadgetHeight(#Tree_0)
If x > Gx And x < gx + lx
If y > gy And y < gy + ly
;MSG( Str(x) + " ; " + Str(y))
EndIf
EndIf
EndIf
EndProcedure
Structure finfo
FunName.s
Args.s
HelpLine.s
EndStructure
Structure s5
name.s
lien.s
page.s
Args.s
Aide.s
EndStructure
NewList allfunctions.finfo()
NewList TreeFonctions.s5()
Structure Seeker
StructureUnion
b.b
w.w
l.l
EndStructureUnion
EndStructure
Procedure ChargLib(LibFile$)
LibName$ = GetFilePart(LibFile$)
If ReadFile(0, LibFile$)
LibSize = Lof()
*LibHeader = AllocateMemory(LibSize)
ReadData(*LibHeader, LibSize)
CloseFile(0)
*LibEnd = *LibHeader + LibSize
*LHSeeker.Seeker = *LibHeader
If *LHSeeker\l = 'PURE' And PeekL(*LHSeeker + 8) = 'LIB3' And PeekL(*LHSeeker + 16) = '3BIL'
*LHSeeker.Seeker = *LibHeader + 20
While *LHSeeker\b <> 0 : *LHSeeker + 1 : Wend
*LHSeeker + 2
If *LHSeeker >= *LibEnd : ProcedureReturn : EndIf
nDLL = *LHSeeker\b
If nDLL
For i = 1 To nDLL
*LHSeeker + 1
DLL$ + ", " + PeekS(*LHSeeker)
*LHSeeker + Len(PeekS(*LHSeeker))
Next i
DLL$ = Right(DLL$, Len(DLL$) - 2)
*LHSeeker + 1
EndIf
*LHSeeker + 1
While *LHSeeker\b <> 0 : *LHSeeker + 1 : Wend
*LHSeeker + 1
If *LHSeeker >= *LibEnd : ProcedureReturn : EndIf
nPL = *LHSeeker\b
If nPL
For i = 1 To nPL
*LHSeeker + 1
nPL$ + ", " + PeekS(*LHSeeker)
*LHSeeker + Len(PeekS(*LHSeeker))
Next i
nPL$ = Right(nPL$, Len(nPL$) - 2)
EndIf
*LHSeeker + 1
If *LHSeeker >= *LibEnd : ProcedureReturn : EndIf
While PeekL(*LHSeeker) <> 'PURE' And PeekL(*LHSeeker + 8) <> 'DAT1'
AddElement(allfunctions())
allfunctions()\FunName = PeekS(*LHSeeker)
*LHSeeker + Len(allfunctions()\FunName) + 1
*LHSeeker + * LHSeeker\b + 5
While *LHSeeker\b = 0 : *LHSeeker + 1 : Wend
allfunctions()\Args = ""
allfunctions()\HelpLine = ""
If *LHSeeker\b = '('
arging = 1
While *LHSeeker\b <> 0
If *LHSeeker\b = '-'
arging = 0
EndIf
If arging
allfunctions()\Args + Chr(*LHSeeker\b)
Else
allfunctions()\HelpLine + Chr(*LHSeeker\b)
EndIf
*LHSeeker + 1
Wend
allfunctions()\Args = LTrim(RTrim(allfunctions()\Args))
allfunctions()\HelpLine = LTrim(RTrim(RemoveString(allfunctions()\HelpLine, "- ")))
*LHSeeker + 1
EndIf
Wend
EndIf
FreeMemory(*LibHeader)
EndIf
ClearList(TreeFonctions())
ForEach allfunctions()
fonctrouve = 0
fonc$ = allfunctions()\FunName
ForEach TreeFonctions()
If TreeFonctions()\name = fonc$
fonctouve = 1
EndIf
Next
If fonctrouve = 0 And fonc$ <> ""
AddElement(TreeFonctions())
TreeFonctions()\name = allfunctions()\funname
TreeFonctions()\Args = allfunctions()\Args
TreeFonctions()\Aide = allfunctions()\HelpLine
EndIf
Next
ClearList(allfunctions())
ProcedureReturn 1
EndProcedure
Procedure GetEditorSelectedTextStart(Editor)
SendMessage_(GadgetID(Editor),#EM_GETSEL,@CSP, @CEP)
ProcedureReturn CSP
EndProcedure
Procedure GetEditorSelectedTextStop(Editor)
SendMessage_(GadgetID(Editor),#EM_GETSEL,@CSP, @CEP)
ProcedureReturn CEP
EndProcedure
Procedure SetEditorSelect(Editor, SelectStart, SelectEnd)
ProcedureReturn SendMessage_(GadgetID(Editor), #EM_SETSEL, Selectstart,Selectend)
EndProcedure
Procedure.s GetEditorSelectedText(Editor)
ProcedureReturn Mid(GetGadgetText(Editor),GetEditorSelectedTextStart(Editor)+1,GetEditorSelectedTextStop(Editor)-GetEditorSelectedTextStart(Editor))
EndProcedure
Procedure.l EditorChang(Editor, KeyStart$, KeyStop$,Text$)
TextSelect$=GetEditorSelectedText(Editor)
Editor$=GetGadgetText(Editor)
If TextSelect$
TextAvant$=Left(Editor$, GetEditorSelectedTextStart(Editor))
TextApres$=Right(Editor$, Len(Editor$)-GetEditorSelectedTextStop(Editor))
If text$<>""
TextSelect$=text$
EndIf
Else
TextAvant$=Left(Editor$, Editor_CursorPos(Editor)+CountString(Editor$,Chr(13)))
TextApres$=Right(Editor$,Len(Editor$)-Editor_CursorPos(Editor)-CountString(Editor$,Chr(13)))
TextSelect$=text$
EndIf
ProcedureReturn SetGadgetText(Editor, Textavant$+keyStart$+TextSelect$+keyStop$+TextApres$)
EndProcedure
Procedure Fenetre_Principale()
NewList KeyWords.s()
AddElement(KeyWords()) : KeyWords()="<Center>"
AddElement(KeyWords()) : KeyWords()="</Center>"
AddElement(KeyWords()) : KeyWords()="<Title1>"
AddElement(KeyWords()) : KeyWords()="</Title1>"
AddElement(KeyWords()) : KeyWords()="<Title2>"
AddElement(KeyWords()) : KeyWords()="</Title2>"
AddElement(KeyWords()) : KeyWords()="<Title3>"
AddElement(KeyWords()) : KeyWords()="</Title3>"
AddElement(KeyWords()) : KeyWords()="<Title4>"
AddElement(KeyWords()) : KeyWords()="</Title4>"
AddElement(KeyWords()) : KeyWords()="<Title5>"
AddElement(KeyWords()) : KeyWords()="</Title5>"
AddElement(KeyWords()) : KeyWords()="<Title6>"
AddElement(KeyWords()) : KeyWords()="</Title6>"
AddElement(KeyWords()) : KeyWords()="<Bold>"
AddElement(KeyWords()) : KeyWords()="</Bold>"
AddElement(KeyWords()) : KeyWords()="<Italic>"
AddElement(KeyWords()) : KeyWords()="</Italic>"
AddElement(KeyWords()) : KeyWords()="<Link="
AddElement(KeyWords()) : KeyWords()="<=>"
AddElement(KeyWords()) : KeyWords()="</Link>"
AddElement(KeyWords()) : KeyWords()="<Color="
AddElement(KeyWords()) : KeyWords()="</Color>"
AddElement(KeyWords()) : KeyWords()="<Image>"
AddElement(KeyWords()) : KeyWords()="</Image>"
If CreatePopupMenu(#Popup_0)
MenuItem(#Popup_1, Language$(66))
MenuItem(#Popup_2, Language$(67))
MenuItem(#Popup_3, Language$(68))
MenuItem(#Popup_4, Language$(69))
MenuItem(#Popup_5, Language$(70))
MenuItem(#Popup_6, Language$(71))
EndIf
If OpenWindow(#Window_0, 0, 0, 700, 690, #PB_Window_Invisible | #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered, Titre$ + " - Projet1")
WindowID = WindowID(#Window_0)
If CreateMenu(#MenuBar_0, WindowID)
MenuTitle(Language$(0)) ; Fichiers
MenuItem(#MENU_1, Language$(1)) ; Nouveau
MenuItem(#MENU_2, Language$(2)) ; Charger
MenuItem(#MENU_3, Language$(3)) ; Sauver
MenuItem(#MENU_4, Language$(4)) ; Sauver sous
MenuBar()
OpenSubMenu(Language$(5)) ; Fichiers récents
If fichier_recent
For a = 0 To fichier_recent
MenuItem(#PB_Any, Language$(6)) ; récent
Next
EndIf
CloseSubMenu()
MenuBar()
MenuItem(#MENU_8, Language$(7)) ; Quitter
MenuTitle(Language$(13)) ; Creation
MenuItem(#MENU_17, Language$(14)) ; Aperçu page
MenuItem(#MENU_18, Language$(15)) ; aperçu de l'aide
MenuBar()
MenuItem(#MENU_19, Language$(16)) ; créer l'aide
MenuTitle(Language$(8)) ; preferences
OpenSubMenu(Language$(9)) ; langues
MenuItem(#MENU_12, Language$(10)) ; français
MenuItem(#MENU_13, Language$(11)) ; anglais
CloseSubMenu()
MenuItem(#MENU_14, Language$(12)) ; preferences
MenuBar()
MenuItem(#MENU_11, Language$(36)) ; Aide
MenuItem(#MENU_10,Language$(76)) ; Mise à jour
MenuItem(#MENU_7, Language$(37)) ; A propos
EndIf
If CreateStatusBar(#StatusBar_0, WindowID)
AddStatusBarField(50)
AddStatusBarField(700)
EndIf
AnimateWindow(WindowID, 250, #AW_VER_POSITIVE)
If CreateGadgetList(WindowID)
Frame3DGadget(#Frame3D_6, 10, 10, 680, 80, Language$(19)) ; Le projet
TextGadget(#Text_0, 20, 32, 50, 20, Language$(20)) ; projet
StringGadget(#String_3, 70, 30, 500, 20, "", #PB_String_ReadOnly) ; projet
TextGadget(#Text_1, 20, 62, 50, 20, Language$(21)) ; Librarie
StringGadget(#String_1, 70, 60, 500, 20, "") ; Librairie
ButtonGadget(#Button_0, 580, 60, 100, 20, Language$(22)) ; Parcourir
ButtonGadget(#Ajouter, 10, 100, 95, 20, Language$(64))
ButtonGadget(#Supprimer, 115, 100, 95, 20, Language$(65))
ButtonImageGadget(#Bas,10,130,42,20,Image3)
ButtonImageGadget(#Haut,62,130,42,20,Image4)
ButtonImageGadget(#Gauche,116,130,42,20,Image5)
ButtonImageGadget(#Droite,168,130,42,20,Image6)
TreeGadget(#Tree_0, 10, 160, 200, 480, #PB_Tree_AlwaysShowSelection)
Frame3DGadget(#Frame3D_3, 220, 100, 470, 110, Language$(18))
ButtonGadget(#Centrer, 225, 125, 60, 20, Language$(23))
ButtonGadget(#Titre, 290, 125, 60, 20, Language$(24))
ButtonGadget(#Couleur, 355, 125, 60, 20, Language$(25))
ButtonGadget(#Gras, 420, 125, 60, 20, Language$(26))
ButtonGadget(#Italic, 485, 125, 60, 20, Language$(27))
ButtonGadget(#Lien, 550, 125, 60, 20, Language$(28))
ButtonGadget(#Image, 615, 125, 60, 20, Language$(29))
ButtonGadget(#Lib, 225, 155, 60, 20, Language$(17))
ButtonGadget(#DLL, 290, 155, 60, 20, Language$(53))
ButtonGadget(#Fonction, 355, 155, 60, 20, Language$(62))
ButtonGadget(#Arguments, 420, 155, 60, 20, Language$(58))
ButtonGadget(#AideRapide, 485, 155, 60, 20, Language$(56))
EditorGadget(#Editor_0, 220, 220, 470, 420)
Editor_ColorBackground(#Editor_0, Color)
LoadFont(#Font_0,Police,TaillePolice)
SetGadgetFont(#Editor_0,FontID())
SetWindowPos(WindowID, #HWND_TOP)
ProcedureReturn windowid
EndIf
EndIf
EndProcedure
Procedure Preference()
DisableWindow(#Window_0,#True)
CreateImage(#Image_7,140,30)
CreateImage(#Image_8,140,30)
CreateImage(#Image_9,140,30)
UseImage(#Image_7)
StartDrawing(ImageOutput())
Box(0,0,140,30,Color)
StopDrawing()
UseImage(#Image_8)
StartDrawing(ImageOutput())
Box(0,0,140,30,ColorText)
StopDrawing()
UseImage(#Image_9)
StartDrawing(ImageOutput())
Box(0,0,140,30,ColorKeyWords)
StopDrawing()
If OpenWindow(#Window_1, 0, 0, 290, 190, #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_WindowCentered , language$(12),WindowID(#Window_0))
If CreateGadgetList(WindowID())
CheckBoxGadget(#CheckBox_100, 10, 160, 180, 20, Language$(77))
ButtonGadget(#Button_100, 10, 10, 120, 30, Language$(78))
ButtonGadget(#Button_101, 10, 50, 120, 30, Language$(79))
ButtonGadget(#Button_102, 10, 90, 120, 30, Language$(80))
ButtonGadget(#Button_103, 10, 130, 120, 20, Language$(81))
UseImage(#Image_7)
ImageGadget(#Image_101, 140, 10, 140, 30, ImageID())
UseImage(#Image_8)
ImageGadget(#Image_100, 140, 50, 140, 30, ImageID())
UseImage(#Image_9)
ImageGadget(#Image_102, 140, 90, 140, 30, ImageID())
StringGadget(#String_100, 140, 130, 140, 20, "")
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
EndSelect
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit=1
CloseWindow(#Window_1)
DisableWindow(#Window_0,#False)
SetWindowPos(WindowID(#Window_0),#HWND_TOP)
EndIf
EndIf
EndProcedure
Procedure ColorText()
; procedure séparée pour obtenir la position du mot clef
; réécriture des mots clefs donc recherche des mots clefs en mode lcase (lcase pour tout le texte)
t$=GetGadgetText(#Editor_0)
nlig=CountString(t$,Chr(13))+1
ncold=Len(StringField(t$,nlig+1,Chr(13)))
Editor_ColorText(#Editor_0,1,1,-1,-1,ColorText)
ForEach KeyWords()
For a=0 To nlig
lig$=StringField(t$,a+1,Chr(13))
If FindString(lig$,KeyWords(),0)
xd=0
For b=1 To CountString(lig$,KeyWords())
xd=FindString(lig$,KeyWords(),xd+1) ;+a
yd=Len(KeyWords())+xd
StatusBarText(#StatusBar_0,1,Str(xd)+" ; "+Str(yd))
Editor_ColorText(#Editor_0,a,xd,a,yd,ColorKeyWords)
Next
EndIf
Next
Next
EndProcedure
Procedure ReadCatalog(Filename$)
If ReadFile(0, Filename$)
If ReadString() = "Catalog"
For k = 0 To NBLang
Language$(k) = ReadString()
Next
EndIf
CloseFile(0)
EndIf
EndProcedure
Procedure RestoreCatalog()
Restore BaseLanguage
For k = 0 To NBLang
Read Language$(k)
Next
DataSection
BaseLanguage :
Data$ "Fichier"
Data$ "Nouveau projet"
Data$ "Charger un projet"
Data$ "Sauvegarder"
Data$ "Sauvegarder sous"
Data$ "Fichiers récents"
Data$ "Projet"
Data$ "Quitter"
Data$ "Préférences"
Data$ "Langue"
Data$ "Anglais" ; 10
Data$ "Français"
Data$ "Préférences"
Data$ "Création"
Data$ "Aperçu de la page"
Data$ "Aperçu de l'aide"
Data$ "Créer l'aide"
Data$ "Librairies"
Data$ "Les outils"
Data$ "Le projet"
Data$ "Projet :" ; 20
Data$ "Librarie :"
Data$ "Parcourir..."
Data$ "Centrer"
Data$ "Titre"
Data$ "Couleur"
Data$ "Gras"
Data$ "Italique"
Data$ "Lien"
Data$ "Image"
Data$ "Il y a une erreur :-(" + #CRLF$ + #CRLF$ + "Description : " ; 30
Data$ #CRLF$ + "Numéro de la ligne ou s'est produite l'erreur : "
Data$ #CRLF$ + "Nombres total d'erreurs : "
Data$ #CRLF$ + #CRLF$ + "Le programme va maintenant se terminer." + #CRLF$ + #CRLF$ + "Voulez-vous envoyer le rapport d'erreur au programmeur?"
Data$ "Erreur!"
Data$ "Rapport d'erreurs de "
Data$ "Aide"
Data$ "A propos"
Data$ "Choisissez une image"
Data$ "Images"
Data$ "Ouvrez la librairie" ; 40
Data$ "Librairie"
Data$ "(Si un texte est sélectionné, la commande va être écrite autour de ce texte)"
Data$ "Insérer la commande '"
Data$ "Entrez le lien ci-dessous"
Data$ "Charger / recharger la librairie"
Data$ "Ajouter un dossier à la liste"
Data$ "Supprimer un dossier de la liste"
Data$ "Liste de toutes les commandes contenues dans la librairie"
Data$ "Ecrivez ici votre page"
Data$ "Ecrivez ici l'adresse de la librairie" ; 50
Data$ "Le nom du projet"
Data$ "Impossible d'ouvrir la librairie selectionnée"
Data$ "DLL"
Data$ "Insérer les noms des librairies PureBasic utilisées"
Data$ "Insérer les noms des librairies externes utilisées"
Data$ "Aide"
Data$ "Insérer l'aide rapide de la fonction"
Data$ "Arguments"
Data$ "Insérer les arguments de la fonction"
Data$ "Ajouter un dossier" ; 60
Data$ "Entrer le nom du dossier"
Data$ "Fonction"
Data$ "Insérer le nom de la fonction en cours"
Data$ "Ajouter dossier"
Data$ "Supprimer dossier"
Data$ "Titre1 : 8 pixels"
Data$ "Titre2 : 10 pixels"
Data$ "Titre3 : 12 pixels"
Data$ "Titre4 : 14 pixels"
Data$ "Titre5 : 18 pixels" ; 70
Data$ "Titre6 : 24 pixels"
Data$ "Déplacer l'élément en cours vers le bas"
Data$ "Déplacer l'élément en cours vers le haut"
Data$ "Déplacer l'élément en cours vers la gauche"
Data$ "Déplacer l'élément en cours vers la droite"
Data$ "Mise à jour"
Data$ "Activer la colorisation syntaxique"
Data$ "Couleur de l'arrière plan"
Data$ "Couleur du texte"
Data$ "Couleur des mots clés" ; 80
Data$ "Police de l'éditeur"
EndDataSection
EndProcedure
RestoreCatalog()
If Fenetre_Principale()
EnableDragDrop(#Tree_0, #Drag_LeftMouse | #Drag_RightMouse, @DropProcedure())
tps=ElapsedMilliseconds()
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
Select EventMenuID()
Case #Popup_1
EditorChang(#Editor_0, "<Title1>","</Title1>","")
Case #Popup_2
EditorChang(#Editor_0, "<Title2>","</Title2>","")
Case #Popup_3
EditorChang(#Editor_0, "<Title3>","</Title3>","")
Case #Popup_4
EditorChang(#Editor_0, "<Title4>","</Title4>","")
Case #Popup_5
EditorChang(#Editor_0, "<Title5>","</Title5>","")
Case #Popup_6
EditorChang(#Editor_0, "<Title6>","</Title6>","")
Case #MENU_8 ; Quitter
quit = 1
Case #MENU_14 ; Preference
Preference()
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case #Centrer
EditorChang(#Editor_0, "<Center>","</Center>","")
Case #Titre
DisplayPopupMenu(#Popup_0, WindowID(#Window_0), WindowX() + GadgetX(#Titre) + 5, WindowY() + GadgetY(#Titre) + 70)
Case #Couleur
col = ColorRequester(Def_Couleur)
If col >= 0
EditorChang(#Editor_0, "<Color=" + Color2HTM(col)+ "<=>","</Color>","")
EndIf
Case #Gras
EditorChang(#Editor_0, "<Bold>","</Bold>","")
Case #Italic
EditorChang(#Editor_0, "<Italic>","</Italic>","")
Case #Lien
link$ = InputRequester2(Titre$, Language$(44) + #CRLF$ + "ex : http://www.myweb.com/, ou mailto:webmaster@myweb.com, %CmdName%, ...", "")
If link$
EditorChang(#Editor_0, "<Link=" + link$ + "<=>","</Link>","")
EndIf
Case #Image
resu = ReadFile(#PB_Any, GetSelectedText())
If resu
CloseFile(resu)
EditorChang(#Editor_0, "<Image>","</Image>","")
Else
Image$ = OpenFileRequester(Language$(38), "", Language$(39) + " (bmp, jpg, png, tga, gif, tiff, ico)|*.ico;*.bmp;*.jpg;*.jpeg;*.png;*.gif;*.tga;*.tiff", 0)
resu = ReadFile(#PB_Any, image$)
If resu
EditorChang(#Editor_0, "<Image>","</Image>",Image$)
EndIf
EndIf
Case #Lib
EditorChang(#Editor_0, "","",nPL$)
Case #DLL
EditorChang(#Editor_0, "","",DLL$)
Case #Fonction
fonc$ = GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
ForEach TreeFonctions()
If TreeFonctions()\name = fonc$
EditorChang(#Editor_0, "","",TreeFonctions()\name)
EndIf
Next
Case #AideRapide
fonc$ = GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
ForEach TreeFonctions()
If TreeFonctions()\name = fonc$
EditorChang(#Editor_0, "","",TreeFonctions()\aide)
EndIf
Next
Case #Arguments
fonc$ = GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
ForEach TreeFonctions()
If TreeFonctions()\name = fonc$
EditorChang(#Editor_0, "","",TreeFonctions()\args)
EndIf
Next
Case #Button_0 ; PARCOURIR
file$ = GetGadgetText(#String_1)
If GetExtensionPart(file$) = ""
resu = ReadFile(#PB_Any, file$)
If Resu
CloseFile(resu)
Else
file$ = GetPureBasicPath() + "PureLibraries\UserLibraries\"
EndIf
Else
file$ = GetPureBasicPath() + "PureLibraries\UserLibraries\"
EndIf
file$ = OpenFileRequester(Language$(40), file$, Language$(41) + "|*.*", 0)
If GetExtensionPart(file$) = ""
resu = ReadFile(#PB_Any, file$)
If Resu
CloseFile(resu)
SetGadgetText(#String_1, file$)
If ChargLib(file$)
ClearGadgetItemList(#Tree_0)
AddGadgetItem(#Tree_0, -1, LibName$, Image1)
OpenTreeGadgetNode(#Tree_0)
SetGadgetText(#String_3, LibName$)
ForEach TreeFonctions()
AddGadgetItem(#Tree_0, -1, TreeFonctions()\name, Image2)
Next
CloseTreeGadgetNode(#Tree_0)
Else
MSGP(Language$(34), Language$(53), 0, 3)
EndIf
Else
MSGP(Language$(34), Language$(53), 0, 3)
EndIf
Else
MSGP(Language$(34), Language$(53), 0, 3)
EndIf
Case #Ajouter
Nom$ = InputRequester2(Language$(60), Language$(61), "")
If nom$
nom2$=GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
resu=0
ForEach TreeFonctions()
If TreeFonctions()\name = nom2$
resu=1
EndIf
Next
If resu=0
OpenTreeGadgetNode(#Tree_0,GetGadgetState(#Tree_0))
AddGadgetItem(#Tree_0, GetGadgetState(#Tree_0)+1, Nom$, Image1)
CloseTreeGadgetNode(#Tree_0,GetGadgetState(#Tree_0))
Else
AddGadgetItem(#Tree_0, -1, Nom$, Image1)
EndIf
EndIf
Case #Supprimer
nom$=GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
resu=0
ForEach TreeFonctions()
If TreeFonctions()\name = nom$
resu=1
EndIf
Next
If resu=0
RemoveGadgetItem(#Tree_0,GetGadgetState(#Tree_0))
EndIf
Case #Bas
nom$=GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
resu=0
ForEach TreeFonctions()
If TreeFonctions()\name = nom$
resu=1
EndIf
Next
If resu=1
state=GetGadgetState(#Tree_0)
RemoveGadgetItem(#Tree_0,state)
If state=CountGadgetItems(#Tree_0)-1 : state=-1 : EndIf
AddGadgetItem(#Tree_0,state+1,nom$,Image2)
SetGadgetState(#Tree_0,state+1)
EndIf
Case #Haut
nom$=GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
resu=0
ForEach TreeFonctions()
If TreeFonctions()\name = nom$
resu=1
EndIf
Next
If resu=1
state=GetGadgetState(#Tree_0)
RemoveGadgetItem(#Tree_0,state)
If state=0 : state=CountGadgetItems(#Tree_0) : EndIf
AddGadgetItem(#Tree_0,state-1,nom$,Image2)
SetGadgetState(#Tree_0,state-1)
EndIf
Case #Tree_0
ForEach TreeFonctions()
If nom$ = TreeFonctions()\name
TreeFonctions()\page = GetGadgetText(#Editor_0)
TreeFonctions()\page = ReplaceString(TreeFonctions()\page, Chr(13), "¤|¤")
EndIf
Next
nom$ = GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
ForEach TreeFonctions()
If TreeFonctions()\name = nom$
SetGadgetText(#Editor_0,ReplaceString(TreeFonctions()\page, "¤|¤", Chr(13)))
EndIf
Next
EndSelect
Case #PB_Event_CloseWindow
quit = 1
Default
If ElapsedMilliseconds()-tps>50
ColorText()
EndIf
If IsMouseOver(GadgetID(#Centrer))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(23) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Titre))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(24) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Couleur))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(25) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Gras))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(26) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Italic))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(27) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Lien))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(28) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Image))
StatusBarText(#StatusBar_0, 1, Language$(43) + Language$(29) + "' " + Language$(42))
ElseIf IsMouseOver(GadgetID(#Button_0))
StatusBarText(#StatusBar_0, 1, Language$(45))
ElseIf IsMouseOver(GadgetID(#Ajouter))
StatusBarText(#StatusBar_0, 1, Language$(46))
ElseIf IsMouseOver(GadgetID(#Supprimer))
StatusBarText(#StatusBar_0, 1, Language$(47))
ElseIf IsMouseOver(GadgetID(#Tree_0))
StatusBarText(#StatusBar_0, 1, Language$(48))
ElseIf IsMouseOver(GadgetID(#String_1))
StatusBarText(#StatusBar_0, 1, Language$(50))
ElseIf IsMouseOver(GadgetID(#Editor_0))
StatusBarText(#StatusBar_0, 0, Str(Editor_CursorX(#Editor_0))+" ; "+Str(Editor_CursorY(#Editor_0)),#PB_StatusBar_Center)
StatusBarText(#StatusBar_0, 1, Language$(49))
ElseIf IsMouseOver(GadgetID(#String_3))
StatusBarText(#StatusBar_0, 1, Language$(51))
ElseIf IsMouseOver(GadgetID(#Lib))
StatusBarText(#StatusBar_0, 1, Language$(54))
ElseIf IsMouseOver(GadgetID(#Dll))
StatusBarText(#StatusBar_0, 1, Language$(55))
ElseIf IsMouseOver(GadgetID(#AideRapide))
If GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
t$="'"+GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)+"'"
EndIf
StatusBarText(#StatusBar_0, 1, Language$(57) + t$)
ElseIf IsMouseOver(GadgetID(#Arguments))
If GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)
t$="'"+GetGadgetItemText(#Tree_0, GetGadgetState(#Tree_0), 0)+"'"
EndIf
StatusBarText(#StatusBar_0, 1, Language$(59) + t$)
ElseIf IsMouseOver(GadgetID(#Fonction))
StatusBarText(#StatusBar_0, 1, Language$(63))
ElseIf IsMouseOver(GadgetID(#Bas))
StatusBarText(#StatusBar_0, 1, Language$(72))
ElseIf IsMouseOver(GadgetID(#Haut))
StatusBarText(#StatusBar_0, 1, Language$(73))
ElseIf IsMouseOver(GadgetID(#Gauche))
StatusBarText(#StatusBar_0, 1, Language$(74))
ElseIf IsMouseOver(GadgetID(#Droite))
StatusBarText(#StatusBar_0, 1, Language$(75))
Else
StatusBarText(#StatusBar_0, 0, Str(Editor_CursorX(#Editor_0))+" ; "+Str(Editor_CursorY(#Editor_0)),#PB_StatusBar_Center)
StatusBarText(#StatusBar_0, 1, Titre$+" "+version$)
EndIf
EndSelect
Until quit = 1
AnimateWindow(WindowID, 250, #AW_BLEND | #AW_HIDE)
EndIf
End
CatchError :
If MSGP(Language$(34), Language$(30) + GetErrorDescription() + Language$(31) + Str(GetErrorLineNR()) + Language$(32) + Str(GetErrorCounter()) + Language$(33), 4, 1) = 6
OpenMailProgram("LGGillou@hotmail.com", "", Language$(35) + Titre$ + " " + version$, GetErrorDescription() + " ; " + Str(GetErrorLineNR()) + " ; " + Str(GetErrorCounter()))
EndIf
End