Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсветка в редакторе, Как сделать подсветку в редакторе 
:(
    Опции темы
Aehn
Дата 7.8.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



В книге Зубкова дан пример редактора. Всего 7 кб.
Какими средствами там можно было бы добавить подсветку, кто знает?
PM MAIL   Вверх
AndNot
Дата 7.8.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Зубкова не читал, но редакторы действуют одинаково - построчно выводят текст на экран. Вот в процедуру вывода строки и встраивают ее парсинг и на ключевые слова и соответствующую подсветку. Можно, дополнительно, вставить подсветку слова под курсором, т.е. когда пользователь нажал клавишу, то определяем, где находится курсор и слово под ним, его и подсвечиваем, но это геморно, особенно при наличии многострочных коментариев. Так, что однозначно лучше реализовать подсветку строк целиком, тем более правила выделения ключевых слов более-менее одинаковы почти у всех популярных языков. Да и скорость вполне приемлимая.

PM MAIL   Вверх
Aehn
Дата 7.8.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Это все и так ясно. Меня интересует сам механизм подсветки на низком уровне. Как сделать группу символов определенного цвета, отличного от других.
PM MAIL   Вверх
AndNot
Дата 7.8.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Зависит от системы. Я же не знаю, для какой он пример приводил smile Для ДОС, самый удобный способ был реализован в IDE Turbo Pascal. Редактор отдавал строку на вывод на экран одной подпрограмме. Она преобразовывала ее в формат видеопамяти - символ & аттрибут цвета. Затем эта строка просто переносилась на экран, простым REP MOVS. Именно во время преобразования в формат видеопамяти строка разбивалась на слова и каждому слову присваивался определенный байт аттрибута, в зависимости от его группы.
PM MAIL   Вверх
Aehn
Дата 8.8.2008, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Речь идет о Windows Зубков "Программирование на языке ассемблер под ДОС Виндоуз Юних"
Пример дан под винды. нормальный редактор такой, весит в четыре раза меньше стандартного ноутпада. Вопрос, какими средствами там можно было бы сделать подсветку?
PM MAIL   Вверх
airyashov
Дата 8.8.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



Вопрос надо ставить по другому, как в стандартном Windows окне класса Edit сделать подстветку.


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
ИванМ
Дата 1.10.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Подсветку делать геморойно. В стандартном текстовом поле можно попытаться делать подсветку в событии WM_PAINT в узеской оконной функции. Но это не выход. Класс EDIT Windows рисует операционной системой без подсветки, и единственное что можно - это поверх нарисованных букв рисовать свои другим цветом например. Но это бред. Будет все мерцать и тормозить. Лучше делать свое окно и вручную все прописывать. Но код будет большой.
PM MAIL   Вверх
AndNot
Дата 1.10.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Цитата(ИванМ @  1.10.2008,  19:24 Найти цитируемый пост)
Но это бред
Действительно smile Делают сабклассированием контрола. Тогда ничего не мерцает, да и окошек можно понаделать сколько душе угодно ;) Рекомендую: x3mEd Сделано очень грамотно, автору респект smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.