Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com
****
***************************************************** }
>> Вариант использования HTML-Help в делфи
Зависимости: HHCtrl.ocx
Автор: wl, wl@ezmail.ru, Киров
Copyright: MSDN
Дата: 8 июля 2003 г.
// 1) После Uses... добавляешь:
const
HH_DISPLAY_TOPIC = $0000;
HH_HELP_FINDER = $0000; // WinHelp equivalent
HH_GET_WIN_HANDLE = $0006;
HH_DISPLAY_TEXT_POPUP = $000E;
// display string resource id or
text in a popup window
HH_HELP_CONTEXT = $000F; // display mapped
numeric value in dwData
HH_HELP_CONTEXTMENU = $0010; // text popup help
// 2) Перед секцией Implementation добавляешь:
function
HtmlHelp( hwndCaller: HWND; pszFile: string
; uCommand: Integer; dwData: integer): HWND; stdcall
; external
'hhctrl.ocx' name
'HtmlHelpA';
// 3) В разделе Private у класса формы добавляешь:
procedure
WMHelp(var
aMessage: TWMHelp); message
WM_HELP;
// 4) В разделе implementation пишешь:
// Если смотрим помощь по пунктам меню
function
GetMenuHelpContext(Menu: TMenu; aMessage: TWMHelp): Integer; begin
Result := 0;
if
(Menu <> nil
) then
begin
Result := Menu.GetHelpContext(aMessage.HelpInfo.iCtrlId,
true);
if
(Result = 0) then
Result := Menu.GetHelpContext(aMessage.HelpInfo.hItemHandle, false); end
;
end
;
procedure
TForm1.WMHelp(var
aMessage: TWMHelp); // Предполагается, что класс // формы называется TForm1 var
Control: TWinControl;
ContextId: integer;
hlp: HWND;
begin
if
(aMessage.HelpInfo.iContextType = HELPINFO_WINDOW) then
begin
Control := FindControl(aMessage.HelpInfo.hItemHandle);
// Ищем активный
компонент
while
((Control <> nil
) and
(Control.HelpContext = 0)) do
Control := Control.Parent; if
(Control = nil
) then
Exit; ContextId := Control.HelpContext; // Смотрим у него HelpContext end
else
begin
ContextId := GetMenuHelpContext(Menu, aMessage);
// Для меню
if
(ContextId = 0) then
ContextId := GetMenuHelpContext(PopupMenu,
aMessage);
end
;
hlp := HtmlHelp(Handle, 'c:WINDOWSHelpjoy.chm', HH_HELP_CONTEXT,
ContextId);
if
(hlp = 0) then
ShowMessage('Помощь не найдена!'); end
;
// 5) вместо 'c:WINDOWSHelpjoy.chm' - подставляешь
свой CHM - файл.