Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Написание подсветки синтаксиса и ошибок

79K
21 февраля 2012 года
kot-rol
8 / / 21.02.2012
Как реализировать подстветку синтаксиса и ошибок на VB?
316
21 февраля 2012 года
Alm3n
889 / / 29.05.2009
А вы какой IDE пользуетесь? Вроде бы там по дефолту всё подсвечивается.
79K
21 февраля 2012 года
kot-rol
8 / / 21.02.2012
Я пишу некоторое подобие двига и для инструментария нужна подсветка синтаксиса и ошибок.
7
21 февраля 2012 года
@pixo $oft
3.4K / / 20.09.2006
Не знаю,на каком языке идёт написание,но RichTextBox есть везде.В том числе и на MSDN
79K
21 февраля 2012 года
kot-rol
8 / / 21.02.2012
Цитата: @pixo $oft
Не знаю,на каком языке идёт написание


Ну смотрим на первый пост внимательно=)

Цитата: @pixo $oft
RichTextBox


А есть какой-то материал, как его использовать?

7
21 февраля 2012 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: kot-rol
Ну смотрим на первый пост внимательно=)

Ну откуда ж мне знать,вдруг ты пишешь подсветку ДЛЯ VB,а не В нём

Цитата: kot-rol
А есть какой-то материал, как его использовать?

Завались.Уточняй версию VB или там какой RTB тебе нужен—APIшный или управляемый.MSDNится на раз

79K
21 февраля 2012 года
kot-rol
8 / / 21.02.2012
VB 2010
:3
316
22 февраля 2012 года
Alm3n
889 / / 29.05.2009
Код:
string str = DateTime.Now.ToLongTimeString();
richTextBox1.AppendText(str + "\r\n" + "SOmeText" + "\r\n");
int i = 0;
while (i <= richTextBox1.Text.Length - str.Length)
{
    i = richTextBox1.Text.IndexOf(str, i);
    if (i < 0) break;
    richTextBox1.SelectionStart = i;
    richTextBox1.SelectionLength = str.Length;
    richTextBox1.SelectionColor = Color.Blue;
    i += str.Length;
}

Небольшой пример.
79K
22 февраля 2012 года
kot-rol
8 / / 21.02.2012
И что же он делает?
Выделяет синим словосочетание SOmeText?
316
22 февраля 2012 года
Alm3n
889 / / 29.05.2009
Нет, он должен выделить синим слово str, если пример не обманывает.
Даже все его повторения в тексте, кажется.
79K
22 февраля 2012 года
kot-rol
8 / / 21.02.2012
Ну, а куда его вообще сунуть?
и так далее...
316
22 февраля 2012 года
Alm3n
889 / / 29.05.2009
Этот синтаксис не подходит, ты же пишешь на Visual Basic в Visual Studio 2010, я всё верное понял?
Если так, то тебе нужно создать экземпляр класса RichTextBox. У него нужны три свойства:
1) SelectionStart задаёт начало сегмента выделенного.
2) SelectionLength его размер в символах, полагаю.
3) SelectionColor его цвет.
В цикле проходишь по всему тексту, каждое слово сравниваешь из, например, словаря с подсветкой, и окрашиваешь, если оно там находится. Ставить эту плюшку нужно на какое-нибудь событие, например, KeyUp или KeyPress, проверяя новый текст и изменяя его цвет. Я бы ещё хранил кэшированную версию того текста, что был выведен и менял бы в ней только то, что пользователь дописывает, чтобы не проверять весь текст при нажатии клавиши, ну это так, маленький хинт. Я с VB почти не знаком, так что могу ошибаться.
316
22 февраля 2012 года
Alm3n
889 / / 29.05.2009
Если ты не знаешь что такое событие, как написать то, что я сказал на Visual Basic и не понимаешь значения метода, а
Цитата:

Ну, а куда его вообще сунуть?
и так далее...


наводит меня на эту мысль, то тебе сначала нужно ознакомиться с языком, средой, ООП.

79K
22 февраля 2012 года
kot-rol
8 / / 21.02.2012
Дорогой мой, поверь с ООП я знаком...
Но есть огромная разница в том что я могу всунуть данный код в Sub не для того действия
На данный момент я розмишляю над тем что бы всунуть его в Sub ИзменениеТекста.
316
22 февраля 2012 года
Alm3n
889 / / 29.05.2009
Цитата: kot-rol
Sub ИзменениеТекста.


Это ты так евенты называешь?

79K
22 февраля 2012 года
kot-rol
8 / / 21.02.2012
Sub это под-программа... или по другому операция, которая вызиваеться при определённом условии.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог