Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как подключить HTML Help в Cbuilder 6

567
21 октября 2010 года
well
14 / / 20.06.2000
Всем привет!
Не могу разобраться с HTML Help.
Работал в BDS2006 делал помощь HTML Help, когда-то тоже были проблемы. Но вроде разобрался, всё работает.
Теперь возникла необходимость сделать помощь в среде CBuilder 6.
И не могу запустить!

Делаю как в BDS2006:

файл Main.h
Код:
#include <htmlhelp.h>
//---------------------------------------------------------------------------
typedef HWND WINAPI (*THtmlHelpRun) (HWND, LPCSTR, UINT, DWORD);
.............................
..............................
private: // User declarations
THtmlHelpRun HtmlHelpRun; //Указатель на функцию
HMODULE HelpLib; //Библиотечный модуль hhctrl.ocx
public: // User declarations
__fastcall TFormMain(TComponent* Owner);
__fastcall ~TFormMain();
};


файл Main.cpp
Код:
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
//Загружаем библиотеку
HtmlHelpRun=NULL;
HelpLib=LoadLibrary("hhctrl.ocx");
if(HelpLib)
{
FARPROC proc=GetProcAddress(HelpLib,"HtmlHelpA");
HtmlHelpRun= (THtmlHelpRun)proc;
}
if(!HtmlHelpRun)
{
FreeLibrary(HelpLib);
}
}

//---------------------------------------------------------------------------
__fastcall TFormMain::~TFormMain()
{
//Выгружаем библиотеку
if(HelpLib)
{
HelpLib=NULL;
FreeLibrary(HelpLib);
}
}

//---------------------------------------------------------------------------
// Запуск помоши кнопкой. Главный топик.
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
HtmlHelpRun(Application->Handle,"help.chm", HH_DISPLAY_TOPIC, NULL);
}
//---------------------------------------------------------------------------

bool __fastcall TFormMain::FormHelp(WORD Command, int Data, bool &CallHelp)
{
//Обработчик события OnHelp
HtmlHelpRun(NULL, "help.chm", HH_HELP_CONTEXT, Data);
if(!HtmlHelpRun)
{
ShowMessage("Помощь не запускается!");
CallHelp=false;
return false;
}
if(Command!=HELP_CONTEXT)
{
ShowMessage("HELP_CONTEXT не обнаружен!");
CallHelp=false;
return false;
}
return true;
}


В различных элементах формы прописаны свойства HELP_CONTEXT.

Запуск от кнопки работает без проблем
Код:
HtmlHelpRun(Application->Handle,"help.chm", HH_DISPLAY_TOPIC, NULL);

А вот контекстная справка работать не хочет. При нажатии F1 ничего не происходит. Но после выхода из программы выдаётся сообщение обработчика OnHelp
ShowMeКод:
ssage("HELP_CONTEXT не обнаружен!");



Где я ошибаюся? Или может вообще на 6 билдере не должно работать?

В BDS2006 были проблемы, пока я не прописал:
Код:
#include "HTMLHelpViewer.hpp"
#pragma link "HTMLHelpViewer"


В BC6 этого нет, а
Код:
#include "WinHelpViewer.hpp"
#pragma link "WinHelpViewer"

не помогает.

Подскажите, пожалуйчта, как с BC6 сделать контекстную справку.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог