Модераторы: Vitalik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SynMix in BCB6 
:(
    Опции темы
ActioN
Дата 9.9.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пытаюсь установить 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?
PM MAIL WWW   Вверх
Sep.
Дата 13.9.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



если ты настраиваешь свойства через диспетчер обьектов, то они не запомнятся. По умолчанию в SynEdit свойства CodeFolding вообще не были выведены в диспетчер. В SynMix они выведены просто для того чтобы посмотреть как называются. А задавать их приходится в рантайме. В простейшем случае надо делать так:
Код

  edit.Lines.LoadFromFile('1.php');
  edit.CodeFolding.Enabled:=true;
  edit.CodeFolding.IndentGuides:=true;
  edit.CodeFolding.CollapsedCodeHint:=true;
  edit.CodeFolding.FolderBarColor:=clGray;
  SynUniSyn1.LoadFromFile('php.hgl');
  edit.InitCodeFolding;

Поэтому:
3) лучше я думаю каждый компонент в свою папку распаковывать , мало ли у них какие файлы пересекаются.
4) зачем?
5a) почему CodeFolding->Initialize(); ?
5б) так и есть
Весь приведенный выше код уже не раз был на форуме. Виталик выкладывал исходники примеров для CodeFolding. По поводу BCB ничего не могу сказать, но с delphi перевести код надеюсь не сложно =)
Удачи и читай форум, ведь даже "гид по форуму" ветка есть. =)

Это сообщение отредактировал(а) Sep. - 13.9.2006, 09:33
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
ActioN
Дата 13.9.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо. Щас буду проверять
PM MAIL WWW   Вверх
ActioN
Дата 14.9.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Проверил. Теперь все нормально. Во время небольшой проверки работы новых функций заметил несколько неточностей:
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


Код

Исходный код:
...
{This is the begin of procedure - тут встречается слово begin. Code Folding срабатывает}
begin
...
end;

Еще не очень комфортно, что в событии OnChange SynEdit'a происходит перерисовка Gutter'a, который при этом мигает. Но это уже мелочь. В остальном - все красиво и отлично. Спасибо!! Хорошая работа.
PM MAIL WWW   Вверх
Sep.
Дата 15.9.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Ключевое слово для открытия CodeFolding'a находится в строке, которая является комментарием.

Это уже полу-реализовано =) Нужно раскоментировать мод "//###mod CF-range in comments", но тут есть еще несколько нерешенных проблем. Подробнее можешь прочесть в английской ветке

А по поводу багов дизайнера, лучше запость их в соответствующей ветке. А то сейчас модератор прийдет и скажет "один вопрос-одна тема" =) К тому же вначале поставь SynUniHL 2.0b4 и проверь там.
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
ActioN
Дата 15.9.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А могу ли я как-нибудь узнать индексы строк, по которым куски кода "свернуты" функцией CodeFolding? И можно как-нибудь программно свернуть кусок кода по индексу строки?
PM MAIL WWW   Вверх
ActioN
Дата 23.9.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А можно как-нибудь узнать полный текст, игнорируя все свернутые части? Если нет - то как же производить сохранение файла? SynEdit->Text возвращает не весь код (удаляет свернутые части).
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




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


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

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