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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по .inc файлам 
:(
    Опции темы
Seldon
Дата 20.8.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



кто может объяснить следующее:
1. зачем в дистрибе лежит SynEdit.inc ?
2. за что отвечают опции из SynUniHighlighter.inc ? (я конечно догадываюсь, но хотелось бы услышать авторитетное мнение)
--------------------
MiBEditor v2.Alpha 10 - Программерский редактор
PM MAIL WWW   Вверх
Vitalik
Дата 23.8.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

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



У меня сейчас нет доступа в интернет, отвечу 27 августа smile
PM MAIL WWW ICQ YIM   Вверх
Seldon
Дата 26.8.2006, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



тему можно удалить
--------------------
MiBEditor v2.Alpha 10 - Программерский редактор
PM MAIL WWW   Вверх
Vitalik
Дата 29.8.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

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



Цитата(Vitalik @  23.8.2006,  19:04 Найти цитируемый пост)
У меня сейчас нет доступа в интернет, отвечу 27 августа
Цитата(Seldon @  25.8.2006,  23:08 Найти цитируемый пост)
тему можно удалить

Идентичные высказывания и мои некоторые слова по этому поводу здесь smile


M
Vitalik
Обсуждение моментов с inc-файлами будет в теме: "Вопросы, предложения и рассуждения".

PM MAIL WWW ICQ YIM   Вверх
Vitalik
Дата 3.9.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

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



Как я высказался в той теме "Вопросы, предложения и рассуждения", я отвечу на вопросы этой темы здесь, чтобы и так уже огромная та тема сильно не разрасталась smile

Цитата(Seldon @  19.8.2006,  23:57 Найти цитируемый пост)
1. зачем в дистрибе лежит SynEdit.inc ?
Цитата(Seldon @  25.8.2006,  23:13 Найти цитируемый пост)
- зачем в дистрибе SynEdit.inc? потому что он юзаецца в SynUniHighlighter.inc? так правильнее будет юзать SynEdit'овский SynEdit.inc т.к. юзер (я например ) мог его изменить.

Дело в том, что раньше предпринимались попытки сделать exe-шный инсталлятор для компонента. И это в целом удалось сделать (UniHighlighter 2.0 Alpha), но тогда пришлось пойти на два не очень приятных момента:
1. Инсталлятор ни в какую не хотел находить SynEdit.inc, поэтому пришлось его скопировать в дистрибутив.
2. Установочные пакеты (*.dpk) должны были быть в папке Delphi, а не Packages.

Поэтому резонный вопрос: нужно ли делать exe-инсталлятор для компонента и стоит ли он того? smile

Цитата(Seldon @  19.8.2006,  23:57 Найти цитируемый пост)
2. за что отвечают опции из SynUniHighlighter.inc ? (я конечно догадываюсь, но хотелось бы услышать авторитетное мнение)

Многое об этих опциях файла SynUniHighlighter.inc можно прочитать на офф. сайте: здесь

Цитата(Особенности установки UniHighlighter 2.0 Alpha)
  • Если вы не используете SynEdit из MyStix (который с поддержкой CodeFolding), то нужно закоментировать директиву {$DEFINE CODEFOLDING} в файле SynUniHighlighter.inc 
    Код
    {$I SynEdit.inc}
    //{$DEFINE CODEFOLDING} //comment
    {$DEFINE PROTECTED_ATTRIBUTES}
    {$DEFINE WRITABLE_ATTRIBUTE_NAME}

  • Чтобы можно было использовать экспорт текста с подсветкой в файлы HTML или RTF нужно "пропатчить" SynEdit. Для этого нужно кое-что поменять в файле SynEditHighlighter.pas: 

    • в классе TSynCustomHighlighter перенести поле fAttributes: TStringList; из секции private в секцию protected 
      Код
      TSynCustomHighlighter = class(TComponent)
      private
        //fAttributes: TStringList; //remove
        ......
      protected
        fAttributes: TStringList; //insert

    • в классе TSynHighlighterAttributes добавить для свойства Name возможность записи, то есть заменить его объявление на: 
      Код
      TSynHighlighterAttributes = class(TPersistent)
      ......
      public
        ......
        property Name: string read fName write fName;

    • Если же по каким-то причинам вы не желаете патчить таким образом SynEdit (хотя от этого он явно не пострадает), то нужно закомментировать две строчки в файле SynUniHighlighter.pas: 
      Код
      {$I SynEdit.inc}
      {$DEFINE CODEFOLDING}
      //{$DEFINE PROTECTED_ATTRIBUTES} //comment
      //{$DEFINE WRITABLE_ATTRIBUTE_NAME} //comment

Цитата(Особенности установки UniHighlighter 2.0 Beta1)
  • Если вы по какой-то причине не хотите использовать встроенный дизайнер (редактор, SynUniDesigner) для компонента, то нужно закоментировать директиву {$DEFINE INTERNAL_DESIGNER} в файле SynUniHighlighter.inc 
    Код
    {$I SynEdit.inc}
    {$DEFINE CODEFOLDING}
    {$DEFINE PROTECTED_ATTRIBUTES}
    {$DEFINE WRITABLE_ATTRIBUTE_NAME}
    {$DEFINE UNIDESIGNER18}
    //{$DEFINE INTERNAL_DESIGNER} //comment

  • Для выбора используемого дизайнера (1.8 или 2.0) используются директивы {$DEFINE UNIDESIGNER18} и {$DEFINE UNIDESIGNER20} соответственно (нужно использовать только одну из них)

PM MAIL WWW ICQ YIM   Вверх
Seldon
Дата 4.9.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Vitalik @  3.9.2006,  17:06 Найти цитируемый пост)
Поэтому резонный вопрос: нужно ли делать exe-инсталлятор для компонента и стоит ли он того? 

имхо установщик не нужен. единственная проблема при установке - решить, какие директивы из SynUniHighlighter.inc использовать. и то, что по дефолту включены директивы PROTECTED_ATTRIBUTES и WRITABLE_ATTRIBUTE_NAME и компонент не компилицца (ведь если эти директивы включены надо перед компиляцией отредактировать SynEditHighlighter.pas).
выход: включить в файл SynUniHighlighter.inc описание директив и по дефолту выключить PROTECTED_ATTRIBUTES и WRITABLE_ATTRIBUTE_NAME. в результате будет единственная проблема - по дефолту не будет работать экспорт. стоит в том же SynUniHighlighter.inc БОЛЬШИМИ буквами написать про это и что надо сделать для того, чтобы экспорт заработал. в результате ньюбы не будут спрашивать почему компонент не компилицца. а будут гораздо реже спрашивать, почему не работает экспрот. их достаточно будет отослать к файлу SynUniHighlighter.inc


чесно говоря не знаю. лично мне инсталлятор не нужен...

Цитата(Vitalik @  3.9.2006,  17:06 Найти цитируемый пост)
1. Инсталлятор ни в какую не хотел находить SynEdit.inc, поэтому пришлось его скопировать в дистрибутив.

вроде ничего сложного, берём из реестра Library path, ищем по всем папкам оттуда нужный файл...

Цитата(Vitalik @  3.9.2006,  17:06 Найти цитируемый пост)
2. Установочные пакеты (*.dpk) должны были быть в папке Delphi, а не Packages.

 smile а почему?
--------------------
MiBEditor v2.Alpha 10 - Программерский редактор
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




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


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

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