Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: RichTextBox Добавлено: 04.05.05 20:10  

Автор вопроса:  mr_Frank | Web-сайт: subaru.nv-avto.ru | ICQ: 316417 
Я уже наверное всех достал с этим RichTextBox`ом. )))

Вопрос такой:
у меня есть текст с n-ым количеством букв. этот текст разделён n-ое кол0во цветов(т.е. текст в разных цветах), мне нужно любым образом получить с какой буквы (по счёту)начинается первый цвет, какой кончается(тоже по счёту) и так повторить n-ое кол-во раз, а потом после проделаных мною операций, поставить все цвета на место как и было.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #1
Добавлено: 04.05.05 20:52
ты рассмотри структуру RTF документа а потом оперируй с цветами.

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 05.05.05 11:08
Если знаешь API, то вот тебе, разбирайся:
http://basicproduction.nm.ru/bparpad2.rar

Ответить

Номер ответа: 3
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #3
Добавлено: 05.05.05 13:56
У меня тоже вопрос по RichTextBox.
Как можно сделать нумерацию каждой строки?

Ответить

Номер ответа: 4
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #4
Добавлено: 05.05.05 14:02
Ну как в HTML редакторах

Ответить

Номер ответа: 5
Автор ответа:
 mr_Frank



ICQ: 316417 

Вопросов: 36
Ответов: 94
 Web-сайт: subaru.nv-avto.ru
 Профиль | | #5
Добавлено: 05.05.05 17:27
progos:

http://vbstreets.ru/VB/Sources/65984.aspx

короче искходники шароварного HTML едитора которй стоит 250 рублей(http://www.bitshape.com/iedit.html?lang=ru)

Ответить

Номер ответа: 6
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #6
Добавлено: 06.05.05 09:25
Спасибо, прикольный примерчик

Ответить

Номер ответа: 7
Автор ответа:
 mr_Frank



ICQ: 316417 

Вопросов: 36
Ответов: 94
 Web-сайт: subaru.nv-avto.ru
 Профиль | | #7
Добавлено: 06.05.05 15:11
незачто

Ответить

Номер ответа: 8
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #8
Добавлено: 06.05.05 17:09
Пример-то прикольный, но там используется контрол без исходников, а мне надо знать, как это можно сделать

Ответить

Номер ответа: 9
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #9 Добавлено: 06.05.05 17:58
Если я правильно тебя понял

Option Explicit
    ;Dim OldRTF As String
Private Sub Command1_Click()
    ;Dim i As Long
    ;Dim Start As Long
    ;Dim CurrentColor As Long
    List1.Clear
    For i = 0 To Len(rtb.Text) - 1
        rtb.SelStart = i
        rtb.SelLength = 1
        If i = 0 Then
            Start = 1
            CurrentColor = rtb.SelColor
        ElseIf (CurrentColor <> rtb.SelColor And Asc(rtb.SelText) <> 32) Or i = Len(rtb.Text) - 1 Then
            If i = Len(rtb.Text) - 1 Then
                List1.AddItem Start & " " & i + 1
            Else
                List1.AddItem Start & " " & i - 1
            End If
            Start = i + 1
            CurrentColor = rtb.SelColor
        End If
    Next i
End Sub

Private Sub Form_Load()
    'это так, для наглядности
    rtb.TextRTF = "{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset204{\*\fname Times New Roman;}Times New Roman CYR;}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;\red0\green128\blue0;}\viewkind4\uc1\pard\cf1\lang1049\f0\fs28\'ea\'f0\'e0\'f1\'ed\'fb\'e9\cf0\fs29 \cf2\fs28\'f1\'e8\'ed\'e8\'e9\cf0\fs29 \cf3\fs28\'e7\'e5\'eb\'e5\'ed\'fb\'e9\par }"
    OldRTF = rtb.TextRTF
End Sub
'вернуть в исходное соcтояние - rtb.TextRTF = OldRTF

Ответить

Номер ответа: 10
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #10
Добавлено: 06.05.05 21:32
ухты, классный пример!..

Ответить

Номер ответа: 11
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #11
Добавлено: 07.05.05 06:02
У меня возник еще один вопрос:) - как можно сделать прокрутку в richtextbox, ну, типа, как в listbox'е TopIndex(мне надо и получать первую строку и устанавливать,

Ответить

Номер ответа: 12
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #12 Добавлено: 07.05.05 07:25
2Progos, посмотри этот код, может что и пригодится для решения твоей задачи

Option Explicit
    Private Const EM_LINESCROLL = &HB6
    Private Const EM_GETRECT = &HB2
    Private Const WM_GETFONT = &H31
    Private Const EM_GETLINECOUNT = &HBA
    Private Const EM_GETFIRSTVISIBLELINE = &HCE
    Private Type RECT
            left As Long
            top As Long
            right As Long
            bottom As Long
    End Type
    Private Type TEXTMETRIC
            tmHeight As Long
            tmAscent As Long
            tmDescent As Long
            tmInternalLeading As Long
            tmExternalLeading As Long
            tmAveCharWidth As Long
            tmMaxCharWidth As Long
            tmWeight As Long
            tmOverhang As Long
            tmDigitizedAspectX As Long
            tmDigitizedAspectY As Long
            tmFirstChar As Byte
            tmLastChar As Byte
            tmDefaultChar As Byte
            tmBreakChar As Byte
            tmItalic As Byte
            tmUnderlined As Byte
            tmStruckOut As Byte
            tmPitchAndFamily As Byte
            tmCharSet As Byte
    End Type
    Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hDC As Long, lpMetrics As TEXTMETRIC) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Private Sub Command1_Click()
    ;Dim rc As RECT
    ;Dim hDC As Long
    ;Dim lfont As Long
    ;Dim oldfont As Long
    ;Dim di As Long
    ;Dim tm As TEXTMETRIC
    ;Dim lc As Long
    ;Dim dl As Long
    ;Dim FirstVisible As Long
    ;Dim LastVisible As Long
    'так можно получить индекс первой видимой строки
    FirstVisible = SendMessage(Text1.hwnd, EM_GETFIRSTVISIBLELINE, 0, 0)
    'так, индекс последней видимой строки
    lc = SendMessage(Text1.hwnd, EM_GETRECT, 0, rc)
    lfont = SendMessage(Text1.hwnd, WM_GETFONT, 0, 0)
    hDC = GetDC(Text1.hwnd)
    If lfont <> 0 Then oldfont = SelectObject(hDC, lfont)
    di = GetTextMetrics(hDC, tm)
    If lfont <> 0 Then lfont = SelectObject(hDC, oldfont)
    LastVisible = ((rc.bottom - rc.top) / tm.tmHeight) - FirstVisible
    'так можно "прокрутить" текст
    SendMessageBynum Text1.hwnd, EM_LINESCROLL, 0, -1
    'lParam - количество строк для прокрутки по вертикали
    '(положительное для прокрутки вверх, отрицательное для прокрутки вниз)
End Sub

Ответить

Номер ответа: 13
Автор ответа:
 Progos



ICQ: 311715784 

Вопросов: 39
Ответов: 157
 Web-сайт: html-expert.org.ru
 Профиль | | #13
Добавлено: 07.05.05 08:21
БОЛЬШОЕ СПАСИБО! :)
Помогло

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам