Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нумерация строк текста, Нумерация строк текста в RichEdit 
:(
    Опции темы
Mbr
Дата 7.10.2004, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Требуется создать достаточно простой текстовый редактор, особенностью которого должна быть возможность отображения номеров строк. Причем текст может содержать форматирование (цвет, начертание и т.д.) Подскажите пожалуйста, что использовать для вывода номеров строк и как сделать это таким образом, чтобы эти номера перемещались вместе с редактируемым текстом находящемся в RichEdit ? smile.gif
PM MAIL   Вверх
Alkash
Дата 8.10.2004, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


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

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



Хм.....Попробуй при появлении строки просто добавлять перед ней номер=)


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
Mbr
Дата 8.10.2004, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Попробуй при появлении строки просто добавлять перед ней номер=)

Но ведь тогда этот номер можно будет отредактировать, а этого допускать нельзя. Да и выглядеть будет не очень хорошо wink.gif

Это сообщение отредактировал(а) Mbr - 8.10.2004, 09:31
PM MAIL   Вверх
DonPager
Дата 8.10.2004, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

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



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


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
Mbr
Дата 8.10.2004, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код
делаешь слева от соего рич эдита панелину (лабель, мемо, что угодно)- делаешь её недоступной - и выводишь номера на ней а при переходе от строки к строке обрабатываешь .... это по простому...

Спасибо за дельный совет! smile.gif Осталось только понять как узнать когда, куда и на сколько прокручивать номера строк при прокрутке основного текста wink.gif Или, что тоже самое, как узнать номер строки, которая отображается в самом верху richedit основного текста ?

P.S. Исходник плагина к сожалению написан на Си... sad.gif

Это сообщение отредактировал(а) Mbr - 8.10.2004, 12:57
PM MAIL   Вверх
Mbr
Дата 8.10.2004, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Или, что тоже самое, как узнать номер строки, которая отображается в самом верху richedit основного текста ?

С эти разобрался. Делается следующим образом:
Код
Result := RichEdit1.Perform(EM_GETFIRSTVISIBLELINE,0,0)

Но мы получаем целое число. А строки в RichEdit перемещаются плавно, по точкам. Вот бы ещё узнать откуда взять информацию о том, какая часть первой строки уже выведена и как её применить ко второму RichEdit, содержащему номера строк rolleyes.gif

Это сообщение отредактировал(а) Mbr - 11.10.2004, 12:53
PM MAIL   Вверх
Mbr
Дата 11.10.2004, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пошастал в инете. Оказалось что я не первый, кто интересуется данным вопросом. Нашёл следующий совет:
Цитата
Легко...
Тебе надо повесить свой обработчик на WindowProc первого RichEdit
и в нем обрабатывать сообщение WM_VSCROLL, пересылая такое же сообщение второму RichEdit.

sample.gif

Это сообщение отредактировал(а) Mbr - 14.10.2004, 23:44
PM MAIL   Вверх
Mbr
Дата 14.10.2004, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Знает ли кто-нибудь почему на событии OnMessage компонента TApplicationEvent не получается поймать сообщения WM_VSCROLL относящегося к RichEdit ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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