Страница: 1 |
Вопрос: Очень НУЖНО!!! Поиск в RICHTEXTBOXE | Добавлено: 26.04.04 20:02 |
Автор вопроса: ![]() |
У меня проблема. Допустим я ввел в RICHTEXTBOXE предложение на русском языке. Потом хочу найти какое-нибудь слово. Но если в данный момент у меня раскладка языка клавиатуры не на русском, то он мне слово на русском языке не находит и наоборот. Как мне выйти из этой ситуации??? |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 27.04.04 00:19 |
Я не совсем понял при чём тут раскладка, но поробуй Instr или InstrRev |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 27.04.04 00:58 |
А я вот вопрос понял, но помочь не могу, у меня при любой раскладке осуществляется поиск... Правда я смотрел на API'шном... |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 3 Ответов: 6 |
Профиль | Цитата | #3 | Добавлено: 27.04.04 02:48 |
Предлагаю пример того что у меня не работает. Создайте форму, на ней кнопка (Command2) и RichTextBox1. Перед нажатием на кнопку поместите фокус на RichTextBox1 и поменяйте раскладку например на английскую. При этом у меня текст в RichTextBox1 форматируется неправильно, все идет в одну строчку. Но если вы перед нажатием на кнопку поместите фокус на RichTextBox1 и выберите русскую раскладку, то текст будет правильно отформатирован. Dim Разница As Integer Dim РазницаГ As Integer Dim РазницаВ As Integer Private Sub Форматирование(ByVal Текст1 As String, _ ByVal Жирность As Byte, _ ByVal Шрифт As String, _ ByVal РазмерШрифта As Byte, _ ByVal Подчеркнутый As Byte, _ ByVal Текст2 As String, _ ByVal Выравнивание As Byte, _ ByVal Красный As Byte, _ ByVal Зеленый As Byte, _ ByVal Синий As Byte) Dim Start As Integer Start = RichTextBox1.Find(Текст1, 0, , rtfWholeWord) RichTextBox1.Span "?", True, True RichTextBox1.SelLength = RichTextBox1.SelLength + 1 Start = RichTextBox1.SelStart + RichTextBox1.SelLength + 1 RichTextBox1.SelBold = Жирность RichTextBox1.SelFontName = Шрифт RichTextBox1.SelFontSize = РазмерШрифта RichTextBox1.SelUnderline = Подчеркнутый RichTextBox1.SelColor = RGB(Красный, Зеленый, Синий) RichTextBox1.SelText = Текст2 RichTextBox1.SelAlignment = Выравнивание 'RichTextBox1.SelStart = Start
End Sub Private Sub ПоказатьРезультаты() RichTextBox1.Text = "РЕЗУЛЬТАТЫТЕСТА?" & vbCrLf & vbCrLf & vbCrLf & vbCrLf RichTextBox1.Text = RichTextBox1.Text + "Названиетеста:?" & vbCrLf RichTextBox1.Text = RichTextBox1.Text + "Всеговопросов:?" & vbCrLf RichTextBox1.Text = RichTextBox1.Text + "Ответов:?" & vbCrLf RichTextBox1.Text = RichTextBox1.Text + "Правильныхответов:?" & vbCrLf Форматирование "РЕЗУЛЬТАТЫТЕСТА?", 1, "Times New Roman" _ , 14, 1, "РЕЗУЛЬТАТЫ ТЕСТА", 2, 0, 0, 255 Форматирование "Названиетеста:?", 1, "Times New Roman" _ , 12, 0, "Название теста:", 0, 0, 0, 255 Форматирование "Всеговопросов:?", 1, "Times New Roman" _ , 12, 0, "Всего вопросов:", 0, 0, 0, 255 Форматирование "Ответов:?", 1, "Times New Roman" _ , 12, 0, "Ответов:", 0, 0, 0, 255 Форматирование "Правильныхответов:?", 1, "Times New Roman" _ , 12, 0, "Правильных ответов:", 0, 0, 0, 255
End Sub Private Sub Command2_Click() ПоказатьРезультаты End Sub Private Sub Form_Activate() ПоказатьРезультаты RichTextBox1.Visible = True End Sub Private Sub Form_Load() RichTextBox1.Visible = False 'РазницаГ = (Me.Width - RichTextBox1.Width) 'РазницаВ = (Me.Height - RichTextBox1.Height)
End Sub Private Sub Form_Resize() 'RichTextBox1.Width = Me.Width - РазницаГ 'RichTextBox1.Height = Me.Height - РазницаВ End Sub |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #4 | Добавлено: 27.04.04 10:38 |
Да, действительно тухло... Попробовал код - нифига не ищет. Пробовал через EM_FINDTEXT - та же байда... Возможно, поможет EM_FINDTEXTW... Как вариант - перед форматированием менять раскладку через LoadKeyboardLayout "00000419", KLF_ACTIVATE но это совсем бредово. На мой взгляд, лучше пересмотреть код. Выбери более оптимальный механизм форматирования. |
Страница: 1 |
|