На этом шаге мы рассмотрим программу, использующую созданный файл помощи.
Отображение справочной информации обеспечивает метод ShowHelp объекта Help, которому в качестве параметра передается идентификатор объекта, запрашивающего справочную информацию, имя файла справочной информации и идентификатор раздела справочной информации. В качестве примера в ниже приведена процедура обработки события Click, возникающего при щелчке на кнопке Справка окна программы "Чистый дисконтированный доход".
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
Help::ShowHelp(this, "cdd.chm", "cdd_01.html");
}
Стандартным способом доступа к справочной информации является нажатие клавиши F1. Причем, как правило, при нажатии F1 в окне справочной информации отображается раздел справки, связанный действиями пользователя, которые выполняются в данный момент.
Для того чтобы реализовать этот способ отображения справочной информации, на форму надо добавить компонент HelpProvider (рисунок 1).
Рис.1. Компонент HelpProvider
После того как компонент HelpProvider будет добавлен на форму, надо выполнить его настройку — указать имя файла справочной информации в качестве значения свойства HelpNamespace. Далее для каждого элемента управления надо указать раздел справочной информации, который следует отобразить в результате нажатия клавиши F1 в момент нахождения фокуса на этом элементе. Раздел указывается путем установки значений свойств ShowHelp, HelpNavigator и HelpKeyWord.
Отображение справочной информации демонстрирует программа "Чистый дисконтированный доход" (ее форма приведена на рисунке 2).
Рис.2. Справочная информация отображается в результате нажатия клавиши F1 или щелчка на кнопке Справка
Во время работы с программой пользователь может получить справку, сделав щелчок на кнопке Справка или нажав клавишу F1. В первом случае отображается главный раздел справочной информации, во втором, в зависимости от того, в какое поле в данный момент пользователь вводит информацию, — раздел Финансовые результаты, Финансовые затраты или Ставка дисконтирования.
Значения свойств компонентов приведены в таблице 1.
Компонент | Свойство | Значение |
---|---|---|
helpProvider1 | HelpNamespace | cdd.chm |
textBox1 | ShowHelp on helpProveder1 | True |
HelpNavigator on helpProvider1 | Topic | |
HelpKeyWord on helpProvider1 | cdd_02.html | |
textBox2 | ShowHelp on helpProveder1 | True |
HelpNavigator on helpProvider1 | Topic | |
HelpKeyWord on helpProvider1 | cdd_03.html | |
textBox3 | ShowHelp on helpProveder1 | True |
HelpNavigator on helpProvider1 | Topic | |
HelpKeyWord on helpProvider1 | cdd_04.html |
Функции обработки событий на кнопках Расчет и Справка приведены ниже:
// щелчок на кнопке Справка private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Help::ShowHelp(this, "cdd.chm", "cdd_01.html"); } // щелчок на кнопке Расчет private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { double p = 0; // поступления от продаж double r = 0; // расходы double d = 0; // ставка дисконтирования double npv = 0; // чистый дисконтированный доход try { p = Convert::ToDouble(textBox1->Text); r = Convert::ToDouble(textBox2->Text); d = Convert::ToDouble(textBox3->Text) / 100; npv = (p - r) / (1.0 + d); label4->Text = "Чистый дисконтированный доход (NPV) = " + npv.ToString("c"); } catch ( System::FormatException^ e) { MessageBox::Show( "Ошибка исходных данных.\nУбедитесь, что все поля " " заполнены, а так же в том, что в качестве " "десятичного разделителя используется запятая.", "Чистый дисконтированный доход", MessageBoxButtons::OK, MessageBoxIcon::Exclamation); } }
Со следующего шага мы начнем рассматривать пример программы.