Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Как то так:

Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIRichEdit.au3>

$sEditText = ''

$hGUI = GUICreate("Test Script", 300, 200)

$hRichEdit = _GUICtrlRichEdit_Create($hGUI, 'Some data with tags  [img][/img], [b][/b], and more.', 20, 20, 260, 160, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))

GUISetState(@SW_SHOW, $hGUI)

AdlibRegister('_SetEdit', 100)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _GUICtrlRichEdit_Destroy($hRichEdit)
            Exit
    EndSwitch
WEnd

Func _SetEdit()
    $aPos = _GUICtrlRichEdit_GetSel($hRichEdit)
    $sData = _GUICtrlRichEdit_GetText($hRichEdit)

    If $sEditText <> $sData Then
        $sEditText = $sData
    Else
        Return
    EndIf

    _GUICtrlRichEdit_SetReadOnly($hRichEdit, True)

    Dim $aTags[2][3] = [['[b][/b]', 'bo', 0x000000], ['[img][/img]', '', 0x0FFF00]]

    For $i = 0 To UBound($aTags)-1
        StringReplace($sData, $aTags[$i][0], '')
        $iC = @extended

        For $j = 1 To $iC
            $iPos = StringInStr($sData, $aTags[$i][0], 2, $j)
            _GUICtrlRichEdit_SetSel($hRichEdit, $iPos-1, $iPos + StringLen($aTags[$i][0])-1)

            If $iPos Then
                If $aTags[$i][1] <> '' Then
                    _GUICtrlRichEdit_SetCharAttributes($hRichEdit, '+' & $aTags[$i][1])
                EndIf

                _GUICtrlRichEdit_SetCharColor($hRichEdit, $aTags[$i][2])
            EndIf
        Next

        _GUICtrlRichEdit_SetSel($hRichEdit, $aPos[0], $aPos[1])
        _GUICtrlRichEdit_SetCharAttributes($hRichEdit, '-' & $aTags[$i][1])
        ;_GUICtrlRichEdit_SetCharColor($hRichEdit, Default)
    Next

    _GUICtrlRichEdit_SetReadOnly($hRichEdit, False)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:00, 26-08-2012 | #5