|
Модераторы: Vitalik |
|
Vitalik |
|
||||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Компонент SynUniHighlighter предназначен для подсветки текста. Для его работы необходима библиотека компонентов SynEdit, а также компонент XmlParser
Итак, что нужно сделать, чтобы начать использовать компонент?
Теперь те же шаги нужно проделать еще для двух компонентов. Во-первых, для XmlParser. Это компонент для быстрого считывания xml-файла. Во-вторых, собственно для SynUniHighlighter (или SynUniSyn). Начнём с XmlParser - он поставляется вместе с последними версиями SynUniHighlighter'a.
Теперь перейдём собственно к установке SynUniHighlighter. Она ничем не отличается от установки предыдущих двух компонентов.
Вот и всё! Теперь можете кидать на форму компоненты со страницы SynEdit и экспериментировать. Если кому-нибудь интересно, могу описать основные прийомы работы с компонентом SynUniSyn Это сообщение отредактировал(а) Vitalik - 8.3.2005, 14:48 |
||||||
|
|||||||
P@VeL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.11.2004 Где: Украина, Крым Репутация: нет Всего: нет |
Здравствуйте!
Я уже давно пользуюсь плагином к Total Commander'у SynPlus, который использует данный компонент. А вот теперь решил сам использовать этот компонент. Поэтому было очень интересно услышать об основных прийомах работы с компонентом. Спасибо! |
|||
|
||||
Vitalik |
|
||||||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Здравствуйте, P@VeL.
А что за программу Вы пишете? Могу дать пару простых первых уроков. Так сказать для быстрого старта Урок 1 (статическое использование компонента подсветки) 1. Кидаем на форму компонент TSynEdit со страницы SynEdit 1.1 Устанавливаем его свойство Align в True 1.2 В свойство Lines вводим произвольный текст. Например, "SynEdit1 Sample {Some text}" 2. Кидаем на форму компонент TSynUniSyn со страницы SynEdit 2.1 Двойной щелчок по компоненту и начанаем добавлять какие-нибудь правила. Например, Add Keywords, 'SynEdit1', 'Sample', Add range, From = '{', To = '}'. 3. На данный момент нужно после каждого изменения SynUniSyn нужно еще как-нибудь изменить форму, чтобы изменения в SynUniSyn сохранились. (Это баг) 4. Устанавливаем у SynEdit1 свойство Highlighter равным SynUniSyn1 Урок 2 (динамическое создание компонента подсветки) 1. Кидаем на форму компонент TSynEdit со страницы SynEdit 1.1 Устанавливаем его свойство Align в True 1.2 В свойство Lines вводим произвольный текст. Например, "SynEdit1 Sample {Some text}" 2. Добавляем в uses ссылки на модули SynUniHighlighter и SynUniRules 3. Добавляем в раздел public формы объявление SynUniSyn1:
Урок 3 (Вызов визуального редактора подсветки) 1. Берём в качестве отправной точки любой из предыдущих примеров. 2. Добавляем в uses ссылку на модуль SynUniDesigner 3. Добавляем новый пункт меню и в его обработчике пишем:
Урок 4 (Загрузка правил подсветки из файла) 1. Берём в качестве отправной точки любой из предыдущих примеров. 2. Кидаем на форму компонент TOpenDialog со страницы Dialogs 3. Добавляем новый пункт меню и в его обработчике пишем:
|
||||||||
|
|||||||||
P@VeL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.11.2004 Где: Украина, Крым Репутация: нет Всего: нет |
Да вот пишу сетевой чат, пока что только разбирался в реализации обмена сообщениями....
Скоро начну разрабатывать дизайн чата и думаю, что этот компонент в подсветке текста мне очень поможет. ЗЫ Спасибо за инфу |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Если будет нужна помощь - обращайся
Эта тема специально создана для того, чтобы обсуждать здесь проблемы установки компонента и минимальные приёмы работы с ним Это сообщение отредактировал(а) Vitalik - 12.11.2004, 12:42 |
|||
|
||||
Kordub |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 21.2.2005 Репутация: нет Всего: нет |
Не устанавливается пакет версии 1.8 - ошибка при компиляции
File not found: 'DsgnIntf.dcu'. У меня Delphi 7. Правда, устанавливается старая версия SynUniSyn, но она не работает с компонентом SynEdit. Т. е. если присвоить свойство
никакой подсветки нет |
|||
|
||||
Vitalik |
|
||||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Давай обсудим это в теме "Под Delphi 7 и Delphi 2005 не устанавливается!" Повтори там твоё сообщение, пожалуйста.
Очень странно! У меня работали обе версии, и работали правильно... Давай это обсудим в той же теме, хорошо? |
||||||
|
|||||||
Guest |
|
|||
Unregistered |
Привет всем! У меня не устанавливается SynEdit. Что для этого нужно?
|
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Какую версию SynEdit и на какую версию Delphi или C++ Builder вы ставите?.. Что за ошибку выдаёт при установке?.. |
|||
|
||||
Guest |
|
|||
Unregistered |
Уважаемые, ставлю SynEdit v. 2.01b на Дельфи 7, потом Unhighlighter v 2.0a full и при компиляции unhighliter Дельфи ругается следующим образом : [Fatal Error] SynUniHighlighter.pas(35): File not found: 'SynEditCodeFolding.dcu' Я так понял, что версия СинЕдит древняя.
|
|||
|
||||
Гость_Fel |
|
|||
Unregistered |
Так, с этим разобрался, тебя ругается вот как
Range.Attributes.Name := 'New'; -- [Error] SynUniHighlighter.pas(160): Cannot assign to a read-only property |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Прочитай обо всём этом здесь: "UniHighlighter 2.0 - Установка компонента"
|
|||
|
||||
Гость_Fel |
|
|||
Unregistered |
Если избавляться от этой проблемы следующим образом:
{$I SynEdit.inc} {$DEFINE CODEFOLDING} //{$DEFINE PROTECTED_ATTRIBUTES} //comment //{$DEFINE WRITABLE_ATTRIBUTE_NAME} //comment то при двойном щелчке по SynUniSyn выскакивает следующее сообщение: Sorry, this feature isn't implemented yet :/ И что же делать? |
|||
|
||||
Guest |
|
|||
Unregistered |
И еще как удалить установленный анхайлайтер?
|
|||
|
||||
Vitalik |
|
||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Это действительно так. По ряду причин эта фича в UniHighlighter 2.0 Alpha не реализована.
Не анхайлайтер, а унихайлайтер А удаляется он обычно:
|
||||
|
|||||
Guest |
|
||||
Unregistered |
И что же делать, ставить более старую версию унихайлайтера?
В этой версии не реализовано? |
||||
|
|||||
Vitalik |
|
||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Именно так... Дело в том, что была предпринята попытка отделить дизайнер от компонента... И вот вследствие этого отделения его пока нельзя его использовать в дизайнере формы. Дело в том, что польза от внутреннего дизайнера, конечно, есть, но ряд пользователей по ряду причин либо не хотят вообще использовать дизайнер, либо не хотят, чтобы он был частью компонента... О том, как стоит поступить в данном случае с дизайнером, стоило бы поговорить в отдельной теме.
Если вам непременно необходимо задать правила подсветки на этапе проектирования формы, то можете поставить старую версию. Иначе, можно просто вручную использовать методы LoadFromFile или LoadFromStream. |
||||
|
|||||
Guest |
|
|||
Unregistered |
ок, спасибо
|
|||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Доброе время суток!!
Лазил по форуму не смог найти ответ на свой вопрос, поэтому хочу его задать сейчас. Заранее прошу прощение если вопрос покажется ламерским, так как я только начинаю осваивать эти компаненты, да и чего таить сам Delphi/ Суть в следующем: Установил SynEdit и SynUniHighlighter, вроде все прошло успешно. Начинаю читать как пользоваться из примеров и дохожу до момента, когда написано "Кидаем на форму компонент TSynUniSyn со страницы SynEdit" Ищу и ни чего плжобного не нахожу. Может я чего не доустановил, а может концепция компаненто изменилась а примеры по использованию старые. Не могу найти TSynUniSyn Подскажите плз. Это сообщение отредактировал(а) andrewdark - 25.1.2006, 11:47 |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Здравствуйте, andrewdark!
Компонентая концепция покамест не изменилась, так что скорее всего у вас возникли проблемы с установкой SynUniHighlighter... которые мы сейчас и попробуем решить
|
|||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Доброе время суток.
Вообщем так я еще разок перечитал страницы форума, и видел примерно такую же проблему. проще говоря ругается в строке Range.Attributes.Name := 'New'; Я так понял поэтому у меня ee и нету Верися Delphi 7 Прочитал документацию по установке установил сначала SynEdit 2.0.2 beta , взятый с сайта http://www.unihighlighter.com/ затем UniHighlighter 2.0 alpha прежде чем устанвливать пропатчил как в инструкции написано, результат см выше это на этапе компиляции спасибо Это сообщение отредактировал(а) andrewdark - 26.1.2006, 16:56 |
|||
|
||||
Vitalik |
|
||||||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Ага, всё ясно Дело в том, что в новых версиях SynEdit возможность экспорта в HTML была кардинально переписана... И вот, чтобы наш компонент (UniHighlighter) мог и дальше нормально работать при экспорте, нужно SynEdit немного пропатчить (открыть доступ не некоторые закрытые поля). Подробнее об этом написано на нашем сайте.
|
||||||||
|
|||||||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Я сделал именно так как было написано в рекомендациях по установке.
Несколько раз переустанавливал следуя иструкция а эффект ровно такой же. Поэтому и обратился за помощью. Если я правильно понял сначала нужно было установить SynEdit, он поставился, закладки появились, А вот далее такие проблемы начались. |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Чтобы компонент действительно переустановился, зачастую необходимо делать следующее:
У тебя скорее всего такая ситуация (у меня такое тоже было): при переустановке SynEdit он не перекомпилирует его полностью, не пересоздаёт файлы *.dcu и/или *.bpl. Удаление этих файлов (как описано выше) заставит его заново и полностью перекомпилировать компонент и создать эти файлы уже обновлёнными Попробуй и напиши о результатах Кстати, на всякий случай напиши что за ошибку он выдаёт на этой строке. Если я правильно понимаю ситуацию, то он должен ругаться на невозможность записи в поле Name, то есть оно как бы readonly (для непропатченной версии SynEdit). Удачи! |
|||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Сделал все как посоветовал, результат следующий.
1. Удалил все что указано, пропатчил 2. Стал устанавливать SynEdit 3. Ошибка в строке
----------------------- [Warning] SynEdit_R7.dpk(5): File not found: 'SynEdit_R7.res' [Hint] SynHighlighterPas.pas(1575): Value assigned to 'ReadDelphiSettings' never used [Error] SynEdit_D7.dpk(34): File not found: 'SynEdit_R7.res' [Fatal Error] SynEditReg.pas(151): Could not compile used unit '..\Source\SynHighlighterManager.pas' Правда при повторном Compile ее не возникает. Дальше я не стал пока продолжать. |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
||||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Ок, продолжил дальше, результат такой же с чего все и началось
Ошибка в строке с New
-------------------- [Warning] SynUniClasses.pas(384): Return value of function 'StrToStartLine' might be undefined [Hint] SynUniClasses.pas(907): Variable 'Value' is declared but never used in 'TSynMultiToken.LoadFromXml' [Hint] SynUniImportOldFormat15.pas(135): Variable 'Value' is declared but never used in 'LoadRange' [Hint] SynUniImportOldFormat15.pas(197): Value assigned to 'TSynUniImportOldFormat15.ImportFromXml' never used [Hint] SynUniImportOldFormat15.pas(194): Variable 'Schemes' is declared but never used in 'TSynUniImportOldFormat15.ImportFromXml' [Hint] SynUniImportOldFormat15.pas(195): Variable 'SchemeIndex' is declared but never used in 'TSynUniImportOldFormat15.ImportFromXml' [Warning] SynUniImportOldFormat15.pas(265): Return value of function 'TSynUniImportOldFormat15.ImportFromFile' might be undefined [Hint] SynUniImportOldFormat18.pas(137): Variable 'Value' is declared but never used in 'LoadRange' [Hint] SynUniImportOldFormat18.pas(202): Value assigned to 'TSynUniImportOldFormat18.ImportFromXml' never used [Hint] SynUniImportOldFormat18.pas(199): Variable 'Schemes' is declared but never used in 'TSynUniImportOldFormat18.ImportFromXml' [Hint] SynUniImportOldFormat18.pas(200): Variable 'SchemeIndex' is declared but never used in 'TSynUniImportOldFormat18.ImportFromXml' [Warning] SynUniImportOldFormat18.pas(267): Return value of function 'TSynUniImportOldFormat18.ImportFromFile' might be undefined [Error] SynUniHighlighter.pas(160): Cannot assign to a read-only property [Fatal Error] SynUniReg.pas(33): Could not compile used unit '..\Source\SynUniHighlighter.pas' Вот так |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Это признак непропатченного SynEdit'а... Прикрепи ка сюда свой файлик SynEditHighlighter.pas... Не знаю почему, но у тебя изменённая версия SynEdit не хочет устанавливаться, а устанавливается старый оригинальный вариант... Попробуй в той строке, где ты добавлял возможность write fName; написать пару левых символов и проверить будет ли компилятор на них ругаться... Может просто ты не тот файлик открыл или компилятор игнорирует этот файл или мож еще что случилось P.S. Что-то у меня поздно получается замечать твои посты. У тебя есть ICQ? |
|||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Сорри, что так долго. Вообщем я все таки добился того чтобы SyUni у меня поставился.
Начинаю испытывать примеры. И урок 1
Выдает сообщение Sorry, this feature isn't implemented yet |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Это действительно так... Дело в том, что в версии 2.0a компонента было произведено кардинальное изменение... Дизайнер был полностью отделён от компонента... В связи с этим использование его на этапе проектирования формы стало затруднительным... Но имеется возможность на этапе проектирования загружать подсветку в компонент из файла с помощью того же контекстного меню, правда для этого надо исправить одну ошибочку в компонете. Если тебя интересует эта фича, то могу прислать исправление... По поводу возвращения встроенности дизайнера вопрос еще не решён... Я сам сомневаюсь как будет лучше... Выскажи здесь своё мнение по этому поводу |
|||
|
||||
andrewdark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Ок. Спасибо!
Как только разберусь с компанентом обязательно отпишу свои ощущения. |
|||
|
||||
MLS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 3.12.2005 Репутация: нет Всего: нет |
А можно просто выделить кусок строки одной-двумя функциями, не создавая правил? Т. е., например, указать начальные координаты, конечные, цвет, шрифт, стиль и всё?
И ещё такая проблема: каждый раз при открытии проекта, в котором используется SynEdit, вижу сообщение, что, мол, класс TSynEdit не найден, бла-бла-бла... Короче говоря, в установленных Packages SynEdit component suite в списке есть, но галочки почему-то никогда нет, то есть он отключён. Приходится каждый раз его подключать. В чём загвоздка? Заранее спасибо. Это сообщение отредактировал(а) MLS - 1.4.2006, 10:46 |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Можно. Это немного обсуждалось в теме "Хочется подсвечивать текст в нужных позициях", исходный код можно найти в теме "Как организовать подсветку фрагметов текста?" Попробуй переустановить SynEdit (полностью) |
|||
|
||||
Roxanne |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 5.2.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Поставила SynEdit и UniHighlighter. Последний с боем, ибо компилятор выбивал ошибку "[Fatal Error] SynUniHighlighter.pas(35): File not found: 'SynEditCodeFolding.dcu'". Посему пришлось исправлять проблему так, как делали выше в этой теме, ибо другого способа я не знаю. Пытаюсь разбирать компоненты и применять их - снова проблема. При двойном щелчке на SynUniSyn выскакивает сообщение с ошибкой "Access violation at address 0460B59E in module 'SynUni_D6.bpl'. Read of address 000005B8." Что это значит, как лечить? И еще более тупой вопрос, просьба не кидать камнями, я пока новичок в делфи. В SynEdit вроде уже есть готовые шаблоны для подсветки различных синтаксисов, как их подключить? Мне html нужен. Скомпилила проект, а подсветки никакой и нет в помине. Что я забыла сделать? |
|||
|
||||
Crw |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 25.2.2008 Репутация: 1 Всего: 4 |
Скорее всего не правильно установили компоненты.
Подвсетку можно реализовать двумя путями - первый это через UniHighlighter (тогда в него надо загрузить файл нужной подсветки), второй это просто исполььзовать нужный компонент из закладки "SynEdit Highlighters". Дальше в компоненте SynEdit в поле Highlighter нужно выбрать нужный компонент подсветки. Вообще с SynEditом поставляются также несколько примеров его использования - посмотрите сначала как там все сделано. |
|||
|
||||
DenisTv |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 64 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
Доброго времени суток.
Установилось все без проблем. Настроил, SynUniSyn. Подключил SynEdit, и до компиляции всё нормально отображается. А после компиляции все настройки сбиваются. Подсветка пропадает и т.п. Подскажите что нибудь? Это сообщение отредактировал(а) DenisTv - 1.7.2009, 22:15 |
|||
|
||||
effect47 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.7.2011 Репутация: нет Всего: нет |
Народ, где можно взять рабочий Unihighlighter? Под D7
|
|||
|
||||
BLACK_KOT |
|
|||
Опытный Профиль Группа: Участник Сообщений: 305 Регистрация: 20.12.2006 Репутация: нет Всего: -1 |
http://prntscr.com/ci2665 при попытке установить SynUniSyn_D7.dpk делфи 7
-------------------- .. я - демо версия Бога от Microsoft.. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |