Merci pour l'idée ma poule ;-)
J'ai réussi grâce a une combine de foufou de récupérer TOUTES les functions utilisateurs écrite comme suis dans un programme :
Function Bonjour()
NPrint("Bonjour)
Endfunction
... code ...
Function AuRevoir()
NPrint("Au revoir")
EndFunction
Dans le listing ce sera comme ça :
BONJOUR
AUREVOIR
Mon code est largement plus rapide que la méthode search dans un texteditor donc je me la pête grave :
Code original genre combine rxmui :
Function ListerLesFonctions()
AnciennePosX=mui.get("editeur".. PageActiver,"CursorX")
AnciennePosY=mui.get("editeur".. PageActiver,"CursorY")
mui.set("editeur".. PageActiver,"CursorX","0")
mui.set("editeur".. PageActiver,"CursorY","0")
FinLister=0
mui.DoMethod("ListingDesFonctions","Clear")
ContenuEditeur=mui.Get("editeur".. PageActiver,"contents")
While FinLister=0
TestPresent=mui.domethod("editeur".. PageActiver,"Search","fun" .. "ction ","")
if TestPresent=0 then FinLister=1
If TestPresent=1
NouvellePosX=mui.get("editeur".. PageActiver,"CursorX")
NouvellePosY=mui.get("editeur".. PageActiver,"CursorY")
FunctionPerso=mui.DoMethod("editeur".. PageActiver,"GetText",NouvellePosX,NouvellePosY,-1,NouvellePosY+1)
mui.DoMethod("ListingDesFonctions","Insert","Bottom",FunctionPerso)
endif
Wend
mui.set("editeur".. PageActiver,"CursorX",AnciennePosX)
mui.set("editeur".. PageActiver,"CursorY",AnciennePosY)
EndFunction
Combine a deux balles mille fois plus rapide
Function ListerLesFonctions()
mui.DoMethod("ListingDesFonctions","Clear")
ContenuEditeur=upperstr(mui.Get("editeur".. PageActiver,"contents")).."FUNCTION :ARTBLINK( Fin du fichier a décomposer)"
Repeat
TestPresent1=findstr(ContenuEditeur,"FUNCTION ")
if TestPresent1<0 then break
If TestPresent1>=0
ContenuEditeur=unRightstr(ContenuEditeur,TestPresent1+9)
local TestPresent2=findstr(ContenuEditeur,"(")
if TestPresent2>40 then TestPresent2=20
local FunctionPerso=leftstr(ContenuEditeur,TestPresent2)
if FunctionPerso=":ARTBLINK" then break
mui.DoMethod("ListingDesFonctions","Insert","Bottom",FunctionPerso)
endif
Forever
EndFunction
En fait, je copie le contenu du texteditor dans une variable, je mets tous le contenu de cette variable en majuscule et ensuite, je recherche une chaine de caractère dans la mega chaine de caractère, et dès que je le trouve j'efface tous ce qu'il y a avant et quand je tombe sur mon rajout, je casse la boucle infini ;-)
Le texteditor ne scroll plus ;-)
MHE Mise à jour avec nouveau moteur "lister les fonctions utilisateurs"
Bon test
Message édité par : artblink / 02-01-2016 16:06