Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > SynUniHighlighter и SynEdit > SynMix in BCB6 |
Автор: ActioN 9.9.2006, 15:30 |
Пытаюсь установить SynMix. Вот что я делаю: 1. Скачал последний SynMix.rar (Размер: 399 Кб (409 501 байт) 2. Распаковал файлы из архива в отдельную папку 3. Также распаковал файлы из архива UniHighlighter20b3ful.rar (Размер: 965 КБ (988 908 байт)) с папки Source в папку Source распакованного архива SynMix.rar 4. Отредактироват SynEditReg.pas 5. Установил компоененты. Все прошло успешно, но вот не все работает корректно. a) Не работает CodeFolding. Установил CodeFolding->Enabled = true, отредактировал hgl файл менеджером подсветок версии 2.0, добавил правила подсветки для CodeFolding. Но тут еще интересное - у SynEdit'a нету свойства CodeFolding->Initialize(); б) Не сохраняются в файл dfm параметры ветки CodeFolding компоненты SynEdit. Может я что-нибудь сделал нетак? Подскажите пожалуйста, как правильно установить SynMix с CodeFolding под BCB6? |
Автор: Sep. 13.9.2006, 09:22 | ||
если ты настраиваешь свойства через диспетчер обьектов, то они не запомнятся. По умолчанию в SynEdit свойства CodeFolding вообще не были выведены в диспетчер. В SynMix они выведены просто для того чтобы посмотреть как называются. А задавать их приходится в рантайме. В простейшем случае надо делать так:
Поэтому: 3) лучше я думаю каждый компонент в свою папку распаковывать , мало ли у них какие файлы пересекаются. 4) зачем? 5a) почему CodeFolding->Initialize(); ? 5б) так и есть Весь приведенный выше код уже не раз был на форуме. Виталик выкладывал исходники примеров для CodeFolding. По поводу BCB ничего не могу сказать, но с delphi перевести код надеюсь не сложно =) Удачи и читай форум, ведь даже "гид по форуму" ветка есть. =) |
Автор: ActioN 13.9.2006, 22:27 |
Спасибо. Щас буду проверять |
Автор: ActioN 14.9.2006, 19:13 | ||
Проверил. Теперь все нормально. Во время небольшой проверки работы новых функций заметил несколько неточностей: 1. При удалении в HglEditor НЕ ПОСЛЕДНЕГО itema из списка item'ов ветки CodeFolding'a появляется ошибка "List index out of bounds...". При дальнейшей попытке обратиться к этому же Item'у (после удаления item остаётся) появляется Acces Violation. Если удаляю последний по счету item - ошибки нету. 2. Ключевое слово для открытия CodeFolding'a находится в строке, которая является комментарием. При этом CodeFolding срабатывает, что не есть хорошо. Например есть правило CodeFolding'a в файле подсветки синтаксиса: Open: begin Close: end Type: Keyword
Еще не очень комфортно, что в событии OnChange SynEdit'a происходит перерисовка Gutter'a, который при этом мигает. Но это уже мелочь. В остальном - все красиво и отлично. Спасибо!! Хорошая работа. |
Автор: Sep. 15.9.2006, 10:38 | ||
Это уже полу-реализовано =) Нужно раскоментировать мод "//###mod CF-range in comments", но тут есть еще несколько нерешенных проблем. Подробнее можешь прочесть в http://forum.vingrad.ru/index.php?showforum=255 А по поводу багов дизайнера, лучше запость их в соответствующей ветке. А то сейчас модератор прийдет и скажет "один вопрос-одна тема" =) К тому же вначале поставь SynUniHL 2.0b4 и проверь там. |
Автор: ActioN 15.9.2006, 23:47 |
А могу ли я как-нибудь узнать индексы строк, по которым куски кода "свернуты" функцией CodeFolding? И можно как-нибудь программно свернуть кусок кода по индексу строки? |
Автор: ActioN 23.9.2006, 21:57 |
А можно как-нибудь узнать полный текст, игнорируя все свернутые части? Если нет - то как же производить сохранение файла? SynEdit->Text возвращает не весь код (удаляет свернутые части). |