Как подкрасить синтаксис при написании программ в RTB? - VB

  1. Всем доброго дня !!! Господа кто занимался создания собственных редакторов программ отзовитесь !!! Вопрос. Как подкрасить синтах при написания программ в RTB (имеется введу отдельные кусочки текста: функции, команды) То что нашел на некоторых сайтах не подходит. Если есть опыт поделитесь пожалуйста. Спасибо.


textual

Код к задаче: «Как подкрасить синтаксис при написании программ в RTB? - VB»

'Àâòîð ïðèìåðГ* Áåëÿåâ Г„Г*Г*ГЁГ«Г* <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

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 4.000 из 5



Похожие ответы
  1. Всю жизнь программировал на С++ и Delphi, а тут заставили писать прогу на Visual Basic Есть вопросы по синтаксису:1. Многооконное приложение. На одном из окон стоит кнопочка "выход". Надо запрограммировать её, чтоб при нажатии приложение завершалось(завершался процесс). Как это сделать? Какая функция?2. Есть какой-нибудь компонент в VB для работы с таблицами? Если есть, то в какой категории компонентов прячется? Надо организовать ввод данных в табличном виде. т.е. пользователь забивает табличку на форме, а программа уже из этой таблички считывает исходные данные.3. Дайте пожалуйста пример, как массив передать в функцию в качестве параметра?

  1. Наконец то устаканил весь алгоритм создания инттерфейса ввода данных для проверочного задания, но вот решил проверить результирующее значение по частям разбив решение и понял, что где-то я недопонимаю правильность синтаксиса.... В-общем, решения не бьют с калькулятором... Это вся работа http://www.fotonons.ru/images/04.01.11/hzh.jpg Но мне захотелось проверить промежуточные узлы выражений с калькулятором так: Temp1.Text = Sin(A + 2 * X ^ 2)^2 Temp2.Text = Tan(B * X / 4) полученный в программе ответ по строкам сравнил с полученным на калькуляторе вручную... Рядом не валялось! Прошу подсказать,, в чём я накосячил