![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможен ли запуск *.CHM с параметром главы?
botaniQ © (2007-10-11 10:32:00)Доброго всем тем, кто 12 и 13 сентября справляет профессиональный праздник!
Возникла такая проблемка:
Написал программу + написал к ней хелп в формате *.hlp...Но как оказалось, МикроМягкие не умудрились в стандартный пакет Висты запихнуть поддержку этих самых *.hlp....Так вот программу мне надо сдулать с поддержкой той самой висты и чтобы справка работала естеССно.
Подвернулся вариант сделать CHM-справку...но, по ходу дела, В делфи нельзя назначить так называемый Application.HelpFile=exDir+'help.chm';
Хочу сделать через ShellExecute....но ладно бы если мне просто надо было бы запустить help.chm...Мне надо его в некоторых случаях запускать с определенной главы...
Я подумал - Если тот же MsPaint запустить с параметром "- c:\1.bmp" то он его естеССно загрузит.....Так вот... Можно ли запустить *.chm файл с параметром, указывающим так называемый TopicID ??? Типа 'help.chm - TopID:Main'...
Суслик (2007-10-11 12:33:00) [1]погугли по "Helpware Group"
я использую два модуля
hh.pas
hh_funcs.pas
для показа chm справки. пока доволен
botaniQ (2007-10-11 11:15:00) [2]Спасибо БОЛЬШОЕ....Скоро испробую....:)
DVM (2007-10-11 11:09:00) [3]
> А есть ли вариант попроще?....
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
// Описание функции "HH"
function HH(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
//========= HTML Help API ===========
const
HH_DISPLAY_TOPIC = $0000;
HH_DISPLAY_TOC = $0001;
HH_CLOSE_ALL = $0012;
function HtmlHelp(hwndCaller: HWND;
pszFile: PChar; uCommand: UINT;
dwData: DWORD): HWND; stdcall;
external 'HHCTRL.OCX' name 'HtmlHelpA';
//=================================
{$R *.DFM}
// Функция "HH"
function TForm1.HH(Command: Word; Data: Integer; var CallHelp: Boolean):
Boolean;
begin
if (Command = 0) and (Data = 0)
then HtmlHelp(Application.Handle,
PChar(Application.HelpFile),
HH_DISPLAY_TOC, 0);
CallHelp := False;
end;
// При создании формы замена реакции приложения на вызов справки
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHelp := HH;
end;
// Вызов CHM Help
procedure TForm1.Button1Click(Sender: TObject);
var
dummy : Boolean;
begin
Application.HelpFile := 'helpname.chm';
HH(0, 0, dummy);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// Закрыть все окна, открытые вызывающей программой
HtmlHelp(0, nil, HH_CLOSE_ALL, 0);
end;
end.
botaniQ (2007-10-11 10:52:00) [4]
> DVM © (11.10.07 10:36) [1]
> http://www.soft32.ru/delphi.shtml?topic=files&title=chm_use
А есть ли вариант попроще?....Этот я уже обдумывал :)
DVM (2007-10-11 10:36:00) [5]http://www.soft32.ru/delphi.shtml?topic=files&title=chm_use