Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Цветной текст


Автор: Guest 19.4.2005, 22:28
в TextBox выводится предложение как сделать что бы определенное слово было цветным, например красным или зеленым ?

Автор: Black_Star 20.4.2005, 00:33
Юзай RichTextBox

Автор: efedron 20.4.2005, 11:40
свойство есть такое у текстбокса - forecolor smile

Автор: Voldemar2004 20.4.2005, 12:48
Налепи 4-е кнопки, RichTextBox, Text1.Text - размер шрифта указывать будешь.

Код

Option Explicit
Dim i As Single

Private Sub Command1_Click()
RichTextBox1.SelColor = vbRed ' Цвет текста
End Sub

Private Sub Command2_Click()
i = Val(Text1.Text)
RichTextBox1.SelFontSize = i ' Размер шрифта
End Sub

Private Sub Command3_Click()
RichTextBox1.SelItalic = 1   ' Курсив
End Sub

Private Sub Command4_Click()
RichTextBox1.SelBold = 1     ' Жирный
End Sub


а вообще почитай справочник и зарегистрируйся. smile
Добавлено @ 12:50
Цитата

в TextBox выводится предложение как сделать что бы определенное слово было цветным, например красным или зеленым ?


Думаю понятно как? Можно еще палитру воткнуть, чтоб цветов было побольше. smile

Автор: ~FoX~ 20.4.2005, 14:29
Цитата(efedron @ 20.4.2005, 12:40)
войство есть такое у текстбокса - forecolor

Угу, только оно весь текст в боксе меняет.
Rich более всего подходит для этого.
Добавлено @ 14:30
Хотя можно и через скажем TextOut или DrawText это сделать, но зачем велосипед изобритать.

Автор: Voldemar2004 20.4.2005, 14:40
Чтоб сохранять такой разноцветный текст в файл, с разным размером шрифтов, разными шрифтами нужно в RTF как минимум сохранять а не в *.txt.
Просто напоминаю. smile

Автор: ~FoX~ 20.4.2005, 14:44
Voldemar2004
Никто и не спорит, но если нужно использовать именно TextBox, то почему бы и не написать свою структуру на основе скажем тэгов или просто в HTML складывать, ну вобщем изгиляться по разному можно.
Хотя я бы свой компонент написал на основе TextBoxa или на кройняк Memo, и с подсветкой и с сохранением/загрузкой текста и т.д., ИМХО проще. Один раз написал и на всю жизнь. smile

Автор: Guest 23.4.2005, 06:22
В TextBox пишется, например фраза "Длина 10 метров"
как сделать чтобы цифра 10 была красного цвета

Text1="Длина " & ????? 10 & " метров"

какая команда должна быть вместо ?????

Автор: Staruha 23.4.2005, 10:38
TextBox меняет цвет всего текста.А для разного цвета RichTextBox неужели не понятно?

Автор: Voldemar2004 23.4.2005, 11:05
Цитата

В TextBox пишется, например фраза "Длина 10 метров"


Цитата

TextBox меняет цвет всего текста. А для разного цвета RichTextBox неужели не понятно?


объект RichTextBox получается так:

Project -> Components -> вкладка Controls -> Microsoft Rich Textbox Control, поставь галочку напротив компонента, нажми кнопку "применить".

P.S. Guest, не стесняйся задавать простые вопросы, которые тебе может быть кажутся глупыми, - все когда-нибудь начинали с 0. (а не с единицы) smile smile

Автор: ~FoX~ 25.4.2005, 09:08
Сейчас нет компилятора по друкой, так что могу гнеть и напароться:

Код

  Font.Color = clRed
  TextOut(TextBox1.Handle, 0, 0, "10", 2)
  Font.Color = clBlack

Что то в этом роде

Автор: Exception 25.4.2005, 15:52
~FoX~ это не дельфи.
1) В VB нет TextOut и т.п.
2) В VB Font - свойство текстбокса и оно влияет на текст всего текстбокса.
юзай Rich TextBox.

Автор: ~FoX~ 26.4.2005, 08:14
Run-time error
А TextOut, это апишная функция лежит в Gdi32

Си прототип
Код

BOOL TextOut(
  HDC hdc,           // handle to DC
  int nXStart,       // x-coordinate of starting position
  int nYStart,       // y-coordinate of starting position
  LPCTSTR lpString,  // character string
  int cbString       // number of characters
);


Цитата(Run @ 25.4.2005, 16:52)
В VB Font - свойство текстбокса и оно влияет на текст всего текстбокса.

Я не имел ввиду TextBox1.Font.
Говорю ж нет компилера под рукой, я просто идею показал.

Автор: Exception 26.4.2005, 11:51
А... так бы сразу и сказал...
Есть правда траблы: подсчет координат и невозможность работы со свойством Text, как и потеря нормальной работы со всем текстбоксом... но если постараться... очень постараться можно конечно что-нить слепить
Код


Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long

Private Declare Function SetTextColor Lib "gdi32.dll" (ByVal hdc As Long, ByVal crColor As Long) As Long



Private Sub Command1_Click()
Dim dc As Long
dc = GetDC(Text1.hwnd)
SetTextColor dc, RGB(255, 0, 0)
TextOut dc, 0, 0, "A", 1
SetTextColor dc, RGB(0, 255, 0)
TextOut dc, 20, 0, "B", 1
End Sub

Private Sub Form_Load()
Text1.Enabled = False
End Sub

~FoX~, +1 за идею smile

Автор: ~FoX~ 26.4.2005, 13:45
Run-time error
Угу, чтот то вроде того, только я бы компанент написал свой.
Когда машину вернут мою из ремонта может статеечку накатаю, по этому поводу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)