EDITEUR/IDE POUR VBSCRIPT (AVEC COLORATION DU TEXTE)

Signaler
Messages postés
207
Date d'inscription
jeudi 21 novembre 2002
Statut
Membre
Dernière intervention
29 mars 2006
-
Messages postés
24
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
24 novembre 2005
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26862-editeur-ide-pour-vbscript-avec-coloration-du-texte

Messages postés
24
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
24 novembre 2005

Bonjour dragon, ton ide me plait beaucoup car je code enorme en vbs ( faut dire que c'est vraiment un language simple a utiliser et tres complet) mon souci et que je n'est pas de compilateur pour compiler ton ide, tu pourais par hazard me metre a dispo un exe ou un zip de ton ide ? se serait sympas de ta part. merci
Messages postés
117
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
11 octobre 2007
1
cool ! je vais implémenter ca dés que possible et je mettrai à jour aussitôt.

merci. je me réjouis de voir le résultat.
Messages postés
1
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
25 janvier 2005

Code très intéressant notamment sur la partie formatage. J'ai quelques suggestions:
1) Ne traiter que la partie visible grâces aux fonctions suivantes:
*****************
' Edit Control Messages
Public Const EM_GETLINECOUNT = &HBA
Public Const EM_LINEINDEX = &HBB
Public Const EM_LINELENGTH = &HC1
Public Const EM_GETFIRSTVISIBLELINE = &HCE
Public Const EM_POSFROMCHAR = &HD6
Public Const EM_CHARFROMPOS& = &HD7
Public Const EM_EXLINEFROMCHAR = (WM_USER + 54)

Public Function GetLineIndex(ByVal RTFControl As Control, ByVal line As Long) _
As Long
GetLineIndex = SendMessage(RTFControl.hwnd, EM_LINEINDEX, ByVal line, ByVal _
0&)
End Function

Public Function GetLineLength(ByVal RTFControl As Control, ByVal CharPos As _
Long) As Long
GetLineLength = SendMessage(RTFControl.hwnd, EM_LINELENGTH, ByVal CharPos, _
ByVal 0&)
End Function

Public Function GetLineCount(ByVal RTFControl As Control) As Long
GetLineCount = SendMessage(RTFControl.hwnd, EM_GETLINECOUNT, ByVal 0&, _
ByVal 0&)
End Function

Public Function GetFirstVisibleLine(ByVal RTFControl As Control) As Long
GetFirstVisibleLine = SendMessage(RTFControl.hwnd, EM_GETFIRSTVISIBLELINE, _
ByVal 0&, ByVal 0&)
End Function

Public Function Getposfromchar(ByVal RTFControl As Control, ByVal CharPos As _
Long) As POINTAPI
Dim WP As POINTAPI
Call SendMessage(RTFControl.hwnd, EM_POSFROMCHAR, WP, ByVal CharPos)
Getposfromchar = WP
End Function

Public Function GetLastVisibleLine(ORTB As RichTextBox, Optional FirstVisible _
As Long = -1) As Long

Dim R As RECT
Dim P As POINTAPI
Dim I As Long
Dim C As Long
Dim CH As Long

If Len(FirstVisible) = -1 Then
FirstVisible = GetFirstVisibleLine(ORTB)
End If

C = GetLineCount(ORTB)
If C > 1 Then
R = GetRect(ORTB)
R.Bottom = (ORTB.Height \ Screen.TwipsPerPixelY) - 6
CH = GetCharHeight(ORTB)
For I = FirstVisible To C - 1
P = GetPosFromLineIndex(ORTB, I)
If (P.Y) > (R.Bottom - CH) Then
GetLastVisibleLine = I - 1
If GetLastVisibleLine < 0 Then GetLastVisibleLine = 0
Exit Function
End If
Next I
End If

GetLastVisibleLine = I - 1

End Function

Public Function GetNumVisibleLines(ORTB As RichTextBox) As Long
Dim FL As Long
FL = GetFirstVisibleLine(ORTB)
GetNumVisibleLines = (GetLastVisibleLine(ORTB, FL) - FL) + 1
End Function

Public Function GetPosFromLineIndex(ORTB As RichTextBox, ByVal line As Long) As _
POINTAPI

Dim FirstChar As Long
FirstChar = GetLineIndex(ORTB, line)
GetPosFromLineIndex = Getposfromchar(ORTB, FirstChar)

End Function
*****************
2) Pour formater ligne à ligne, rechercher les \par du .TextRTF correspondant au vbcrlf du .text et ne construire (formater que cette partie là)
3) Utiliser des expressions régulières pour trouver les mots à colorier
4) Utiliser une recherche dichotomique pour trouver les keywords sur un tableau initialisé ailleurs

Bravo pour l'ensemble!
Messages postés
13
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
11 avril 2005

Evidemament !

Au passage, comment on lie un formulaire Html avec une database pour stocker les Infos saisient ?
Afficher les 20 commentaires