HTML редактор написан на Delphi 7. Скачать его можно здесь.
Программа включает в себя следующий набор модулей:
- htmleditor.pas основной модуль. Содержит основную форму программы. Более детальное описание смотрите здесь.
- unit2.pas cодержит форму просмотра в броузере. На форме расположен элемент wb1, который является стандартным компонентом TWebBrowser. В переменной urlname хранится адрес страницы, которую он отображает.
Используется для просмотра в браузере текста, находящегося в поле Editor (из главной формы).
- unit3.pas cодержит форму обработки шаблона. Более детальное описание смотрите здесь.
- unit4.pas cодержит форму для указания дирректории, куда будет помещен новый проект.
- unit5.pas cодержит форму для создания таблицы. Форма содержит 4 поля типа TEdit и два типа TComboBox для ввода параметров таблицы.
В обработчике нажатия на кнопку OK, свойствам формы cols,rows,width,border,align,valign присваиваются значения соответствующих полей.
Также переменной instb присваивается значение true, что означает что пользователь хочет создать таблицу.
- unit6.pas cодержит форму для создания изображения. Содержит необходимые поля, для указания свойств изображения.
- unit7.pas cодержит форму с настройками. Здесь можно поменять значения полей записи Enviroment. Описание этой переменной можно посмотреть здесь.
- unit8.pas cодержит форму для отображения файла справки.
Описание модуля htmleditor.pas. |
На основную форму помещены элементы:
- Editor компонент RichEdit. Предназначен для редактирования текста.
В связи со слабыми возможностями компонента для раскраски текста, цвета обновляются довольно долго.
- Tree1 компонент TTreeView. В это дерево при загрузке заносятся теги HTML из файла tree.tr. Структуру файла можно посмотреть здесь.
- Также присутствует главное меню, контекстное меню, ToolBar. диалоги для сохранения и загрузки файла, диалог для поиска в тексте.
Текст HTML в поле для редактирования раскрашвается разными цветами.
Цвета хранятся в переменной EnvCol, которая представляет запись из пяти переменных TColor:
- tag цвет тегов HTML (то, что заключено в <>);
- text цвет обычного текста;
- value цвет констант (то, что заключено в "" внутри тегов HTML);
- symb цвет спец. символов (этим цветом выделяется все &...;);
- comm цвет комментариев;
Цвета задаются при создании формы.
Частота обновления цвета хранится в переменной colorupdate, которая расположена в записи Enviroment. Обновление цвета может происходить:
- После любого изменения текста в поле (если enviroment.colorupdate=CU_ALLWAYS).
- После ввода в текст символов <, >, скобок комментариев, а также при удалении символа (если enviroment.colorupdate=CU_OPT).
- Только при нажатии соотв. кнопки на ToolBar или в меню (если enviroment.colorupdate=CU_NEWER).
По умолчанию enviroment.colorupdate=CU_OPT, но это значение можно поменять в настройках.
Реализация раскраски содержится в процедурах chcol() и getbrackets().
Процедура getbrackets содает массив с символами (< > " & ; [ ]), а процедура chcol, используя этот массив,
меняет цвет частям текста в 3 прохода (теги и константы, потом спец. символы, потом комментарии).
При создании формы подгружается дерево тегов HTML и их свойств из файла tree.tr.
При двойном шелчке мыши на дереве, вызывается процедура InsertText
для вставки текста в поле. Вставка текста в поле происходит с помошью буфера:
текст копируется в буфер, а из буфера в поле в текущую позицию курсора.
Описание модуля обработки шаблона unit3.pas. |
Пользователь указыват файл описания шаблона *.tp, структуру которого можно посмотреть здесь.
В массив FileList заносится список файлов шаблона.
Элемент массива FileList содержит описание назначения файла, название файла, и признак использования. Максимальное количество файлов ограничено константой MAXFILES=100.
В элемент ListFiles (компонент TCheckListBox) заносится весь список файлов шаблона.
В обработчике нажатия кнопки OK файлы, помеченные птичкой, копируются в указанную пользователем директорию, а у соответствующих элементов массива FileList признаку использования use присваивается значение true.
Далее идет просмотр всех используемых файлов вызовом процедуры ViewFile. Если в файле находится кусок текста заключенный в скобки из $$$ (например $$$имя$$$),
и при этом его еще нет в массиве usecomp, то он добавляется в массив usecomp.
Для каждого элемента из массива usecomp активизируется текстовое поле, в которое вводится значение, подставляемое вместо искомого куска текста.
Максимальное количество элементов в массиве usecomp ограничено и равно 15.
После очередного нажатия кнопки OK для каждого используемого файла происходит вызов процедуры MakeFile,
которая подставляет вместо $$$текст$$$ значение из соответствующего поля.
Файл представляет из себя набор строк. Одна строка содержит один тег или свойство.
Тег пишется с начала строки без отступа. Свойства тега пишутся в строках, следующих за тегом, с одинарным отступом в строке.
Например:
Файл tree.tr
|
Полученное дерево
|
<table></table>
align=""
valign=""
|
|
Структура файла шаблона (*.tp). |
Файл представляет из себя набор строк. Вначале содержится число N содержащее количество файлов в шаблоне.
Далее расположены 2*N строк, по две строки на каждый файл. Первая строка содежит назначение файла, вторая его имя.
Например шаблон сайта магистра может выглядеть так:
Файл magistr.tp
|
Форма для выбора треб. файлов
|
8
Биография
index.htm
Укр. биография
indexu.htm
Анг. биография
indexe.htm
Автореферат
diss/index.htm
Электронная библиотека
library/index.htm
Каталог ссылок
links/index.htm
Отчет о поиске
links/zvit.htm
Индивидуальное задание
ind/index.htm
|
|
Описание переменной Enviroment |
Переменная Enviroment содежит следующие поля:
- newblankhtml:boolean если = true, то при создании нового документа сразу создается структура HTML файла.
- showtree:boolean если = true, то показывается дерево тегов, иначе оно спрятано.
- colorupdate:integer содержит тип обновления цвета в тексте. Может принимать значения CU_ALLWAYS (обновлять всегда при изменении текста),
CU_OPT (обновлять только при вводе некоторых символов) и CU_NEVER (обновлять только вручную).
|