Страница: 1 |
Страница: 1 |
Вопрос: Про цвет в Visual Basic
Добавлено: 25.10.04 13:03
Автор вопроса: Gog | ICQ: 288876730
Как написать программу чтобы
Имеем один большой текстбокс и маленький из маленького в большой чтобы не только данные сохранялись но еще и цвет
Text1.text=text2.text
........................
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #1
Добавлено: 25.10.04 13:17
непонял. как это понять
Номер ответа: 2
Автор ответа:
Gog
ICQ: 288876730
Вопросов: 6
Ответов: 14
Профиль | | #2
Добавлено: 25.10.04 14:18
Sory, времени мало было не правильно написала .
Не большой и маленький, а обычные текстбоксы, только размеры мышкой откорректированные. И еще добавлю:
про text1.forecolore я знаю. А вопрос такой: каждый раз, когда добвляю новый текст с VBCrlf, в другом текстбоксе сохраняются не только новые и старые данные, но и цвет этих данных. А когда пишеш text1.forecolor=text2.forecolor,
то при вводе новых данных, цвет всего текста(и старых и новых данных)меняется на цвет ново занесенных данных.
Номер ответа: 3
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #3
Добавлено: 25.10.04 14:38
Ну понимаеш есть такая специфика у текстбокса что он не может держать в себе текст более чем одного цвет так что вот те код на использование
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 = "BFG" 'Blue light
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_Change()
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 = vbBlue 'color functions
lngPos = lngPos + 1
Wend
lngPos = 1
Next
lngPos = 1
While Not InStr(lngPos, txtmain.Text, "'" = 0 ' green
On Error Resume Next
lngPos = InStr(lngPos, txtmain.Text, "'" ' green
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 = vbGreen ' color
lngPos = lngPos + 1
Wend
txtmain.SelStart = Len(txtmain.Text) '+ 1
LockWindowUpdate 0
End Sub
Private Sub txtMain_KeyPress(KeyAscii As Integer)
txtmain.SelColor = vbBlack
End Sub
только не забудь добавить в компонентах RichTextBox,
называется кажется Microsoft RichTextBox control,
имя присвой txtmain
вроде все, код работает для тестирования в ричбокс введи BFG должен стать синим,
где увидиш обозначение цветов это то что нужно выделять, при надобности переправить на более простое (твой вопрос) мжоно с легкостью.
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 25.10.04 15:15
Так ты хочешь для каждой строчки разный цвет? Не выйдет. TextBox этого не
позволяет. Юзай Microsoft RichTextBox Control.
Номер ответа: 5
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #5
Добавлено: 25.10.04 17:29
2 LamerOnLine ты вообще читал предыдуший мессадж?
да?,так перепрочти 8-6 строчкиу снизу, не это не хамство но там уже все написано, причем еще и
с примером, зачем дублировать?
Номер ответа: 6
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #6
Добавлено: 25.10.04 17:53
Короче какая кому разница... в общем человеку нужен интерфейс цветного чата. Можно на RTB, можно ещё на чем-то..
Номер ответа: 7
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #7
Добавлено: 25.10.04 19:43
У DaSharm'a ведь есть отличный HTML-чат?
Почему бы за основу не взять его?
Номер ответа: 8
Автор ответа:
Gog
ICQ: 288876730
Вопросов: 6
Ответов: 14
Профиль | | #8
Добавлено: 26.10.04 14:19
U DaSharm'a ? A gde eto?On na Visual Basic napisan?
Esli da to eto to chto nuwno.
Номер ответа: 9
Автор ответа:
Gog
ICQ: 288876730
Вопросов: 6
Ответов: 14
Профиль | | #9
Добавлено: 26.10.04 14:39
Ogromnoe sposibo Alexsandr!!!! No esli tebe ne trudno, mog by (hotja by v kracii)objasnit vkluchaja interfays, esli chestno funkcii ne sovsem znakomy, hotja esli pomuchujus razberus, no esli ne trudno..........
Номер ответа: 10
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #10
Добавлено: 26.10.04 18:21
DaSharm это LocalHost.co.nr
а как функции ползовать напишу как время будет,
а оно у меня будет завтра с утра.
если будет...
но дожно быть...
Номер ответа: 11
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #11
Добавлено: 26.10.04 18:35
Сайт, ув. товарища Dasharm'a
http://www.localhost.co.nr/
Номер ответа: 12
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #12
Добавлено: 27.10.04 08:04
Private Sub Command1_Click()
txtmain.SelColor = RGB(0, 0, 256)
End Sub
цвета задаеш в SelColor.
Номер ответа: 13
Автор ответа:
Gog
ICQ: 288876730
Вопросов: 6
Ответов: 14
Профиль | | #13
Добавлено: 28.10.04 14:42
Это я знаяju. Мне вот не понятно, что из чего добавлять, что где писать(в смысле в интерфейсе), чтобы в большом текстбоксе добавлись новые данные и вместе с ними их цвет.(Как данные добавлять я знайу, просто это для ясности задачи.)
Просто у тебя в программе клик не через кнопку( а у меня через) поэтому возникаjuт вопросы...........