Как подкрасить синтаксис при написании программ в RTB? - VB
Формулировка задачи:
Всем доброго дня !!!
Господа кто занимался создания собственных редакторов программ
отзовитесь !!!
Вопрос. Как подкрасить синтах при написания программ в RTB (имеется введу отдельные кусочки текста: функции, команды)
То что нашел на некоторых сайтах не подходит.
Если есть опыт поделитесь пожалуйста.
Спасибо.
Решение задачи: «Как подкрасить синтаксис при написании программ в RTB?»
textual
Листинг программы
'Àâòîð ïðèìåðГ* Áåëÿåâ Г„Г*Г*ГЁГ«Г* <outen@mail.ru> Option Explicit Private Declare Function LockWindowUpdate Lib 'user32' (ByVal hwndLock As Long) As Long Dim lngPos As Long, strRight As String, strLeft As String, arrWords() As String, lngIndex As Long Private Const strWords As String = 'New RaiseEvent AddressOf Type Compare Alias Lib Call Do Preserve Redim Erase ' + _ 'Global Byte Base On Error Resume GoTo Until Open Input Output Random Binary Access Read Write Put Close Stop Set ' + _ 'Is Nothing Property Let Get ElseIf Null And Or If Then Sub Declare Function Option Dim As End Loop Private Public ' + _ 'While Not Wend Next Explicit LBound UBound Const Static True False String Boolean Integer Long Single Currency ' + _ 'Select Case With Else ByVal For Mod Xor Imp To Module' Private Sub mnuShow_Click() arrWords = Split(strWords, ' ') LockWindowUpdate txtMain.hWnd txtMain.SelStart = 0 txtMain.SelLength = Len(txtMain.Text) txtMain.SelColor = vbBlack For lngIndex = LBound(arrWords) To UBound(arrWords) While Not InStr(lngPos, LCase(txtMain.Text), LCase(arrWords(lngIndex))) = 0 lngPos = InStr(lngPos, LCase(txtMain.Text), LCase(arrWords(lngIndex))) txtMain.SelStart = lngPos - 1 txtMain.SelLength = Len(arrWords(lngIndex)) strRight = Mid(txtMain.Text, lngPos + Len(arrWords(lngIndex)), 1) If lngPos = 1 Then strLeft = ' ' Else strLeft = Mid(txtMain.Text, lngPos, 1) If (strRight = ' ' Or strRight = ',' Or strRight = '' Or strRight = '(' Or strRight = Chr(13)) Or (strLeft = ' ' Or strLeft = '' Or strLeft = Chr(32)) Then txtMain.SelColor = &H800000: txtMain.SelText = arrWords(lngIndex) lngPos = lngPos + 1 Wend lngPos = 1 Next lngPos = 1 While Not InStr(lngPos, txtMain.Text, ''') = 0 On Error Resume Next lngPos = InStr(lngPos, txtMain.Text, ''') txtMain.SelStart = lngPos - 1 If Not InStr(lngPos, txtMain.Text, vbCrLf) = 0 Then txtMain.SelLength = InStr(lngPos, txtMain.Text, vbCrLf) - lngPos Else txtMain.SelLength = Len(txtMain.Text) If lngPos = 1 Then strLeft = ' ' Else strLeft = Mid(txtMain.Text, lngPos - 1, 1) If Not strLeft = Chr(34) Then txtMain.SelColor = &H8000& lngPos = lngPos + 1 Wend txtMain.SelStart = 0 LockWindowUpdate 0 End Sub Private Sub Form_Load() lngPos = 1 txtMain.RightMargin = 100000 End Sub Private Sub Form_Resize() txtMain.Move 0, 0, ScaleWidth, ScaleHeight End Sub Private Sub txtMain_KeyPress(KeyAscii As Integer) txtMain.SelColor = vbBlack End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д