Lines в richTextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Lines в richTextBox

Сообщение Alprog » 17.10.2008 (Пт) 16:35

Хочется работать в richTextBox со строками, как с отдельными элементами.
Но единственный способ выдрать "строку" из контрола, который я смог придумать,
это апроксимировать начало и конец строки (используя метод getLineFromChar).

Попробовал ещё нагородить кучу одностроковых боксов рядом с друг другом и обрабатывать нажатия
ентера, стрелок, бекспейса и т.д. для управления фокуса между ними, но в этом случае нельзя мышкой выделить несколько сток.

Как бы вы делали?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Lines в richTextBox

Сообщение Antonariy » 17.10.2008 (Пт) 17:35

Хочется работать в richTextBox со строками, как с отдельными элементами.

А какой в этом смысл?
Лучший способ понять что-то самому — объяснить это другому.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 17.10.2008 (Пт) 19:00

Ну, например, каретка покидает строку; в этот момент проходим по строке в поисках
ключевого слова, если таковое имеется, выделяем его другим цветом.

Кроме того, мне скорее всего придётся работать с объектом, который имеет массив Lines.
Было бы очень удобно координировать работу между ними.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 18.10.2008 (Сб) 14:03

Вообщем остановился на создании своего контрола из кучи стандартных

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Lines в richTextBox

Сообщение Хакер » 18.10.2008 (Сб) 18:06

Лучше бы остановился на создании контрола, но не из кучи стандартных.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Lines в richTextBox

Сообщение Debugger » 18.10.2008 (Сб) 19:17

Alprog писал(а):Вообщем остановился на создании своего контрола из кучи стандартных

Пробовал сам. Замучаешься. Сабклассинг и то проще. А самое простое решение - см. кирпичи, там где-то была раскраска слов.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 19.10.2008 (Вс) 5:35

Хакер писал(а):Лучше бы остановился на создании контрола, но не из кучи стандартных.

А как собрать свой текстбокс?

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 19.10.2008 (Вс) 8:35

Debugger писал(а): см. кирпичи, там где-то была раскраска слов.

Раскраска у меня уже реализована, это-то как раз просто.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Lines в richTextBox

Сообщение Хакер » 19.10.2008 (Вс) 10:14

Alprog писал(а):А как собрать свой текстбокс?

А ты думаешь, стандартный текстбокс создан из массива PictureBox-ов-строк, в которых находится массив PictureBox-ов-символов, в которых надохятся картинки для каждого символа?

Ты ошибаешься, если так думаешь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 19.10.2008 (Вс) 12:23

А ты думаешь, стандартный текстбокс создан из массива PictureBox-ов-строк

:shock: Нет, я всё-таки не совсем того...

Просто не знаю как это делается. Нужно как-то получать область видео-памяти или ещё как-то... но как именно - без понятия.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Re: Lines в richTextBox

Сообщение Matew » 20.10.2008 (Пн) 7:19

arrLines() = Split(txt.text, vbNewLine) ?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Lines в richTextBox

Сообщение Proxy » 20.10.2008 (Пн) 7:21

Может ли vbNewLine отличаться от vbCrLf? Лень проверять( это тоже 10 и 13?
Follow the white rabbit.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Lines в richTextBox

Сообщение alibek » 20.10.2008 (Пн) 8:07

В Windows отличаться не будет.
Lasciate ogni speranza, voi ch'entrate.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 20.10.2008 (Пн) 8:15

Matew писал(а):arrLines() = Split(txt.text, vbNewLine) ?

Вариант... надо только посмотреть насколько это бысто будет работать. Хотя я уже почти доделал контрол :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Lines в richTextBox

Сообщение alibek » 20.10.2008 (Пн) 8:20

Быстро будет работать.
Вариант с InStr несколько быстрее, но и сложнее.
Если не планируешь работать с мегабайтными текстами, можешь использовать Split.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Lines в richTextBox

Сообщение Viper » 20.10.2008 (Пн) 8:22

Matew писал(а):arrLines() = Split(txt.text, vbNewLine) ?
И получишь не строки, а абзацы, что есть не одно и то же.
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Lines в richTextBox

Сообщение alibek » 20.10.2008 (Пн) 8:26

Я думаю, что ему абзацы и нужны.
Синтакс-подсветку обычно производят по смене абзаца, а не строки.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Lines в richTextBox

Сообщение Andrey Fedorov » 20.10.2008 (Пн) 10:48

Alprog писал(а):Как бы вы делали?


Тебе вроде ничего редактировать не надо?
Если так, то можно использовать WebBrowser Control...

Хотя трудно понять что же все таки тебе нужно в итоге.

Скажем, что такое Grid знаешь? Какие видел и почему не устраивают?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Lines в richTextBox

Сообщение Alprog » 20.10.2008 (Пн) 11:40

Andrey Fedorov писал(а):Скажем, что такое Grid знаешь? Какие видел и почему не устраивают?


Знаю, но больше 5 минут на них не останавливался. А разве там можно менеть цвет у каждого символа?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Lines в richTextBox

Сообщение Viper » 20.10.2008 (Пн) 13:43

Alprog писал(а):
Andrey Fedorov писал(а):Скажем, что такое Grid знаешь? Какие видел и почему не устраивают?


Знаю, но больше 5 минут на них не останавливался. А разве там можно менеть цвет у каждого символа?
Не у каждого символа, но у каждой ячейки. Но тебе вроде как Grid то и не нужен. Если цель заключается в том, что тебе надо выделить отдельные абзацы, то есть те части текста, которые при вводе разделяются Enter'ом (в текст при этом вводится пара символов vbСrLf), то ответ дан - Split.
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 53

    TopList