Выделение парных скобок в Delphi объект Memo

Автор Тема: Выделение парных скобок в Delphi объект Memo  (Прочитано 311 раз)

Оффлайн igr-slpАвтор темы

  • Новичок
  • *
  • СПАСИБО: 0
  • Сообщений: 5
  • Карма: 1
  • Пол: Мужской
    • Просмотр профиля
    • textexpert1
Уважаемые форумчане!
Не могу решить проблему по выделению парных скобок в memo.
Предполагается, что скобки "{} []" и вдобавок еще и вложенные.
Библиотека Syn хорошо работает с выделением подсветкой содержимого в скобках, в том числе и вложенных.
Но тут необходимо подсветить парную закрывающую скобку, когда позиция маркера на открывающей.
Возможно кто-то уже решил проблему.
Размножение статей newbielink:http://textexpert1.ru/ [nonactive]

Онлайн Sevab

  • Администратор
  • *****
  • СПАСИБО: 3737
  • Сообщений: 9854
  • Карма: 345
  • Пол: Мужской
    • Просмотр профиля
    • Trust Directory Project
Я точно решал, но уже не помню как (только для фигурных скобок).
Толи сторонние компоненты использовал, толи парсил, а возможно встроенная функция (в том же Syn) есть.
Исходников под рукой нет, поэтому сейчас найти не смогу.

Оффлайн igr-slpАвтор темы

  • Новичок
  • *
  • СПАСИБО: 0
  • Сообщений: 5
  • Карма: 1
  • Пол: Мужской
    • Просмотр профиля
    • textexpert1
Если как-то попадется на глаза решение, буду благодарен за подсказку. В syn я решил вопрос подсветки внутри скобок (в т.ч. вложенных)



а вот про скобки не нашел (да и документации переводной нет)
Размножение статей newbielink:http://textexpert1.ru/ [nonactive]

Онлайн Sevab

  • Администратор
  • *****
  • СПАСИБО: 3737
  • Сообщений: 9854
  • Карма: 345
  • Пол: Мужской
    • Просмотр профиля
    • Trust Directory Project
У меня реализация выглядела так:
Когда курсор перед открывающей или закрывающей скобкой, выделяются (другим цветом) обе.
Но это не все, также если навести курсор мыши сверху одной из скобок, то парные тоже выделяются.
Таким образом можно выделить до двух парных скобок.

Ниже пример моей работающей программы (выделено одновременно две пары скобок):



Но исходники действительно долго искать.

Онлайн Sevab

  • Администратор
  • *****
  • СПАСИБО: 3737
  • Сообщений: 9854
  • Карма: 345
  • Пол: Мужской
    • Просмотр профиля
    • Trust Directory Project
На сколько сейчас вспоминаю, используются все же встроенные функции Syn.
что-то типа
memo.возможно_еще_чтото.getpairbrackets

Насколько помню (но это не точно), еще что-то редактировал в самом исходнике Syn, чтобы цепляло нужные скобки.

Получите координаты скобок, а затем средствами Syn меняете цвет бэкграунда и фореграунда символов по этим координатам.
Привязываете эту функцию к моменту когда курсор перед скобкой (или как в моем случае еще и над скобкой).
Когда событие исчезает, возвращаем цвета обратно.
Примерно так.

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
998 Просмотров
Последний ответ 07-05-2010, 14:19:00
от Sevab
19 Ответов
3290 Просмотров
Последний ответ 15-03-2012, 10:53:42
от GArthurK
22 Ответов
2059 Просмотров
Последний ответ 22-11-2011, 21:51:09
от seouzer
3 Ответов
486 Просмотров
Последний ответ 18-10-2011, 06:17:17
от ivan18shishkin
0 Ответов
199 Просмотров
Последний ответ 28-02-2012, 14:18:49
от kuksha