Вверх ↑
Главный модератор
Ответов: 2997
Рейтинг: 395
#1: 2019-11-18 13:40:02 ЛС | профиль | цитата
    Инфраструктура элемента

  Под инфраструктурой элемента подразумеваются:
    - любые файловые потоки;
    - служебная и справочная информация об элементе с примерами его использования;
    - реализации элемента под каждый пакет в котором он будет функционировать;
    - различные версии реализации под конкретный пакет;
    - локализованные ресурсы для многоязычных данных;
  Сложные элементы могут обладать некоторой инфраструктурой, необходимой для его функционирования. Простым примером инфраструктуры может служить справочная информация об элементе, которую пользователь может получить, выделив элемент в редакторе схемы и нажав клавишу F1. Если элемент не имеет собственной справки, то для пользователя откроется справка о программе. Справочные материалы программы хранятся в папке C:\HiAsm.NET\help. На данный момент форматом справки по элементу должен быть HTML. Чтобы программа нашла справку, надо чтобы в папке C:\HiAsm.NET\help находился файл с именем элемента и расширением .html. Например, для нашего элемента имя должно быть: Example.html. Конечно, можно поместить файл справки в нужный каталог многими способами, но наша концепция «всё своё ношу с собой» предполагает, что справка будет храниться в ресурсах сборки контейнера элемента.

  Теперь рассмотрим какие необходимо сделать дополнения в коде элемента, чтобы он получил данную функциональность. Предполагается, что файл справки в формате HTML уже есть:
<html>
<head>
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<table class="mes_table" border="1">
<tr class="prop_cap">
<td width="10%"><IMG src="../int/icons/components.ico"></td>
<td align="center">Example</td>
</tr>
<tr>
<td style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px" colSpan="2">
<P align="justify">&nbsp;Элемент&nbsp;Example -&nbsp;демонстрирует возможности использования сборки как контейнера для хранения информации об элементе.
</P>
</td>
</tr>
<tr>
<td class="down_sel" colSpan="2">&nbsp;support: <A href="http://forum.hiasm.com">
Example</A></td>
</tr>
</table>
</body>
</html>

  Добавляем файл Example.html в ресурсы сборки как мы это уже делали с файлами иконки элемента и скрипта построения кода для проекта Windows Forms (смотрите предыдующие материалы темы). После добавления получим следующий вид ресурсов сборки:


  Чтобы поместить файл справки из ресурсов сборки в папку C:\HiAsm.NET\help надо переопределить код метода инициализации элемента:
public override void init(int flag = 0)
{
base.init(flag);
string content = Properties.Resources.Example;
string helpName = String.Format("{0}.html", GetType().Name);
string helpFilename = Path.Combine(Share.dataDir, Constants.HELP_PATH, helpName);
Helpers.overwriteIfDifferent(content, helpFilename);
}
  Читаем содержимое справки в строковую переменную, формируем имя файла, собираем полный путь для создания нового файла и передаём в метод-помощник, который перезапишет или создаст новый файл справки в указанном месте.

Проверяем работу справки элемента:
Demo


Можете скачать полный код проекта элемента: MyElementCore.zip
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Редактировалось 2 раз(а), последний 2020-01-02 20:14:48