![]() |
|
Модераторы: Vitalik |
![]()
|
|
| ActioN |
|
|||
|
Unregistered |
Вот столкнулся с проблемой. Использую TSynEdit+Hightlighter. Мне необходимо сделать как в билдере, ... к примеру компилируется код в билдере, находятся ошибки, в нижней части редактора кода появляется окно со списком ошибок и при двойном клике на одном из items, редактор кода переходит на строку указанную в тексте ошибки. Как из текста взять цифры(номер строки) уже сделал, а вот как перейти на строку незнаю. Предложили мне такой код, который на RichEdit и Memo работает без проблем а в SynEdit отказывается работать:
Это сообщение отредактировал(а) Vitalik - 10.4.2005, 10:18 |
|||
|
||||
| Vitalik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
ActioN, почему бы просто не использовать свойства SynEdit'a BlockBegin, BlockEnd и CaretXY для этого?
Добавлено @ 14:05 P.S. В твоём сообщении я только исправил тип кода с Delphi на C++ Builder. И вместо невостребованных тегов жирности в коде вставил комментарий. |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Vitalik, спасибо за исправления, попробовал откомилировать(Builder 6), выдает вот такие ошибки:
[C++ Error] Unit1.cpp(22): E2268 Call to undefined function 'BufferCoord' [C++ Error] Unit1.cpp(22): E2034 Cannot convert 'int' to 'TPoint' [C++ Error] Unit1.cpp(23): E2034 Cannot convert 'int' to 'TPoint' [C++ Error] Unit1.cpp(24): E2034 Cannot convert 'int' to 'TPoint' [C++ Warning] Unit1.cpp(25): W8004 'Len' is assigned a value that is never used |
|||
|
||||
| ActioN |
|
|||
|
Unregistered |
+еще пришлось в файле SynEditHighlighter.hpp закоментировать две строчки, т.к. выдавались ошибки
// __property AnsiString LanguageName = {read=GetLanguageName}; // __property TSynHighlighterCapabilities Capabilities = {read=GetCapabilities, nodefault}; |
|||
|
||||
| Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
У меня сейчас Билдер не установлен, поэтому я написал как оно приблизительно должно выглядеть...
По видимому у тебя старая версия SynEdit. В ней вместо нового типа TBufferCoord для задания позиции курсора использовался стандартный тип TPoint У тебя какая версия SynEdit? Тебе нужна именно старая, но стабильная или ты просто не знал о существовании новой версии (правда беты)? Если что, советую скачать последнюю бету SynEdit 2.0.1 beta
Да, помню... Тоже была такая проблемка, когда под Билдером компонент ставил hpp файлы создаются самим билдером, попробую разобраться в чём тут дело... P.S. Зарегистрируйся на этом форуме Вот ссылочка: http://forum.vingrad.ru/index.php?act=Reg&CODE=00 |
||||||
|
|||||||
| ActioN |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 12.4.2005 Репутация: нет Всего: нет |
Vitalik, в readme написано:
This is the first public version 1.0 of the SynEdit project. Скорее всего у меня версия 1.0 Мне нужна такая версия SynEdit чтобы нормально работала и чтобы реализовать работу куска этого кода, который на старой неработает И еще 1: т.к. я пользуюсь старой версией SynEdit и уже кучу кода написал под нее, будет ли он работать на новой версии? 2: В RichEdit есть SelLenght() и SelStart, а в SynEdit SelStart и SelEnd, неужели нету каких-нибудь быстрых команд для реализации "SelLength"?, а то на вычисление длинны слова через SelStart & SelEnd уходит больше времени. |
|||
|
||||
| Vitalik |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
SynEdit 2.0.1 beta вполне нормально работает. Я ей и сам пользуюсь Но этот код можно реализовать и на старой версии SynEdit'a:
Работать будет, но как минимум придётся везде поменять использование свойств CaretXY, BlockBegin, BlockEnd и др. Так как они поменяли их тип с TPoint на TBufferCoord, то BlockBegin.X нужно будет поменять на BlockBegin.Char и BlockBegin.Y - на BlockBegin.Line. А также тип соответствующих переменных с TPoint на TBufferCoord. Если же ты не использовал этих свойств, то этого и менять не надо будет. Вроде бы есть еще какие-то не стыковки, но они не такие существенные и исправляются легко. В целом - переход на новую версию SynEdit в любом случае того стоит
В SynEdit 2.0.1 beta и более ранних версиях, кстати, уже есть такое свойтсво SelLength у SynEdit'a Еще один повод перейти на новую версию |
||||||||
|
|||||||||
| ActioN |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 12.4.2005 Репутация: нет Всего: нет |
Vitalik, скачал новую версию SynEdit с Sourceforge.net, воспользовался кодом из сообщения #2, и все заработало, спасибо.
А можно узнать какие нововведения появились в новой версии (на русском желательно). Сам заметил что много hightloghter'ов появилось. И еще. Можно ли где-то достать описание команд SynEdit? |
|||
|
||||
| Vitalik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Не встречал историй версий Есть на английском, но не в очень-то удобочитабельном виде
Этого тоже не знаю. К сожалению не слышал об этом... Добавлено @ 00:27 Но если будут вопросы - спрашивай здесь Чем сможем - поможем |
||||
|
|||||
| ActioN |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 12.4.2005 Репутация: нет Всего: нет |
Vitalik, ОК, буду знать. Повысил бы тебе репутацию за хорошие ответы и советы, дак у меня нету 100 постов. Поэтому просто Спасибо!
Это сообщение отредактировал(а) ActioN - 14.4.2005, 23:50 |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:14 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |