Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 768

/ вопрос открыт /

Здравствуйте, эксперты!
Поставил библиотеку RxLib, а теперь вопрос, как мне переделать выделение синтаксиса, в RichEdit вроде работает, а при переносе в RxRichEdti не срабатывает, тупо мелькает. RxRichEdit также нужен для вставки рисунков, потому RichEdit не подходит, и RichEditSyntax не предлагать, т.к. не могу найти возможность отключения выделения.

Приложение:
  1. procedure TForm1.UpdateSyntaxDelphi;
  2. var
  3. TempMS: TMemoryStream;
  4. FSyntax: TpsvPasRTF;
  5. pos, top: Integer;
  6. OnChange: TNotifyEvent;
  7. begin
  8. if (Length(RichEdit1.Text) <= 0) then
  9. exit;
  10. pos := RichEdit1.selstart;
  11. top := SendMessage(RichEdit1.Handle, EM_GETFIRSTVISIBLELINE, 0, 0);
  12. OnChange := RichEdit1.OnChange;
  13. TempMS := TMemoryStream.Create;
  14. RichEdit1.OnChange := nil;
  15. try
  16. FSyntax := TpsvpasRTF.Create;
  17. try
  18. try
  19. FSyntax.SetText(RichEdit1.Text);
  20. FSyntax.ConvertToRTFStream(TempMS);
  21. TempMS.Position := 0;
  22. RichEdit1.PlainText := False;
  23. RichEdit1.Lines.BeginUpdate;
  24. RichEdit1.Lines.LoadFromStream(TempMS);
  25. SendMessage(RichEdit1.Handle, EM_LINESCROLL, 0, top);
  26. RichEdit1.Lines.EndUpdate;
  27. finally
  28. FSyntax.Free;
  29. end;
  30. except
  31. RichEdit1.SelAttributes := RichEdit1.DefAttributes;
  32. end;
  33. finally
  34. RichEdit1.PlainText := True;
  35. RichEdit1.SelStart := Pos;
  36. TempMS.Free;
  37. RichEdit1.OnChange := OnChange;
  38. end;
  39. end;


Примечание #1 (12 мая 2009, 16:23):
В разделе uses надо psvPas, к томуже везде указывается richedit, мне лень было в коде менять на rxrichedit, я просто компонент переименовал (так что прошу прощения).

Ozz Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ozz (статус: Посетитель)
Вопрос отправлен: 12 мая 2009, 15:57
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 12 мая 2009, 16:29; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 12 мая 2009, 16:14 [#1]:

А что такое "отключить выделение" и зачем оно надо?
во вторых, rxLib уже давно не поддерживается и плавно интегрировались в JVCL...
Галочка "подтверждения прочтения" - вселенское зло.
Ozz

Ozz (статус: Посетитель), 12 мая 2009, 16:20 [#2]:

Дело в том, что при использовании может понадобиться не подсвечивать коддинг (не каждому оно ведь и надо), в richeditsyntax можно выбрать язык, синтаксис которого будет выделяться в тексте, но я не нашел возможности отключить это дело.
Насчет rxlib, что было, то и использую, а про JVCL и не слышал...
Вадим К

Вадим К (статус: Академик), 12 мая 2009, 16:29 [#3]:

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

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 24 февраля 2020, 12:39
Выполнено за 0.02 сек.
Рейтинг@Mail.ru