Опубликован: 11.09.2006 | Уровень: специалист | Доступ: платный
Лекция 8:

Справочные материалы. перевод приложений. специальные возможности

Создание вкладки "Избранное"

При работе с большой справочной системой удобно организовывать собственную мини-справку, добавляя страницы в "Избранное" (рис. 8.15).

Добавление страниц в "Избранное"

Рис. 8.15. Добавление страниц в "Избранное"

Для добавления этой возможности в проекте notepadhelp.hhp переходим на вкладку Project и нажимаем на кнопкуКнопка(Add/Modify window definition). В появившемся окне переходим на вкладку Navigation Pane, в группе Tabs ставим галочку в чекбоксе Favorites tab (рис. 8.16).

Добавление вкладки "Избранное"

Рис. 8.16. Добавление вкладки "Избранное"

Закрываем окно свойств и снова компилируем проект.

Тестирование и отладка справки

В конце работы мы должны получить один скомпилированный файл .chm, содержащий в себе все HTML-страницы, рисунки на них и ссылки. При компиляции проекта следует обращать внимание на окно отладки, в котором выводится результаты компиляции. Если процесс прошел успешно, выводится следующая информация:

Microsoft HTML Help Compiler 4.74.8702

Compiling d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm


Compile time: 0 minutes, 2 seconds
38  Topics
184  Local links
0  Internet links
1  Graphic


Created d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm, 77,290 bytes
Compression decreased file by 1,321,411 bytes.

Если программа сталкивается с ошибкой1Подробнее о предупреждениях и ошибках см. в следующем разделе справки HTML Help Workshop: Creating Help/Compile and Test Help/Compile a Help Project/Compiler messages. — например, с отсутствием части страниц, — она продолжит компиляцию и в конце выведет соответствующий отчет:

Microsoft HTML Help Compiler 4.74.8702

Compiling d:\Uchebnik\Code\Glava8\HELP\notepadhelp.chm

HHC5003: Error: Compilation failed while compiling HelpPages\Paste.htm.
HHC5003: Error: Compilation failed while compiling HelpPages\Save.htm.
HHC5003: Error: Compilation failed while compiling HelpPages\SaveAs.htm.

The following files were not compiled:
HelpPages\Paste.htm
HelpPages\Save.htm
HelpPages\SaveAs.htm

При компиляции большой справочной системы желательно сохранять отладочные сообщения в виде файлов (рис. 8.17).

Сохранение отладочного сообщения в виде файла Test1.log

Рис. 8.17. Сохранение отладочного сообщения в виде файла Test1.log

Если по разным причинам вам не удается скомпилировать проект, лучше всего восстановить его заново — при наличии файла содержания .hhc и файла указателя .hhk сделать это достаточно просто.

На диске, прилагаемом к книге, вы найдете файлы notepadhelp.chm, notepadhelp.hhp, ContentsNhelp.hhc, notepadhelp.hhk и Test1.log в каталоге Code\Glava8\HELP.

Добавление готового файла справки к приложению

Теперь, когда у нас есть готовый файл справки, нам остается только добавить его к приложению Notepad C#. Скопируем файл notepadhelp.chm в папку bin/Debug приложения. В главном меню формы frmmain добавляем новый пункт, устанавливая следующие свойства:

Свойство Значение
Name mnunotepadhelp
Shortcut F1
Text Notepad C# Help

Во "Работа с элементами управления" мы проходили запуск программ из приложения. Здесь внешней программой будет файл notepadhelp.chm; переходим в код формы и подключаем соответствующее пространство имен:

using System.Diagnostics;

Создаем обработчик пункта меню mnunotepadhelp:

private void mnunotepadhelp_Click(object sender, System.EventArgs e)
  {
    
    try
    {
      Process SysInfo = new Process();
      SysInfo.StartInfo.ErrorDialog = true;
      SysInfo.StartInfo.FileName = "notepadhelp.chm";
      SysInfo.Start();
    }
    catch (Exception ex)
    {
      MessageBox.Show (ex.Message);
    }
  }

Запускаем приложение. Справка вызывается при выборе пункта меню Notepad C# Help или нажатии клавиши F1.

Декомпиляция готовых файлов справки формата chm

Программа HTML Help Workshop позволяет разбирать готовые файлы в формате chm на составляющие страницы. Запускаем программу, в меню File выбираем Decompile, в поле Destination folder указываем путь к папке, в которую будут помещаться извлеченные HTML-файлы, в поле Compiled help file — путь к файлу chm.

Окно Decompile

Рис. 8.18. Окно Decompile

После декомпиляции в указанной папке появятся файлы содержания hhc, указателя hhk и исходная папка с HTML-страницами (рис. 8.19).


Рис. 8.19.
Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989