Форум: "Начинающим";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];
ВнизАльтернативная справка Найти похожие ветки
← →
>|< (2011-08-04 15:53) [0]Хочу по нажатию F1 открывать определенный PDF-файл, который лежит в базе.
присвоил обработчик Application.OnHelp, присвоил значение Application.HelpFile
Но при нажатии на F1 получаю сообщение:
---------------------------
Приложение: WINHELP
---------------------------
Подсистеме Win 16 недостаточно ресурсов для продолжения работы. Щелкните "ОК", закройте все приложения и перезагрузите компьютер.
---------------------------
ОК
---------------------------
Вот код:function TfrmMain.FormHelp(Command: Word; Data: Integer;
var CallHelp: Boolean): Boolean;
var HelpDir:string;
procedure OpenURL(const AURL: String);
begin
DMMain.odsHelpinDB.Close;
if Application.MainForm.ActiveMDIChild<>nil then
DMMain.odsHelpinDB.SetVariable("P_CN", Application.MainForm.ActiveMDIChild.ClassName)
else
DMMain.odsHelpinDB.SetVariable("P_CN", Self.ClassName);
DMMain.odsHelpinDB.Open;
if DMMain.odsHelpinDB.IsEmpty then
ErrorDlg("По данной форме справка не найдена!")
else
begin
HelpDir:=ExtractFilePath(Application.ExeName)+"\HELP";
if not DirectoryExists(HelpDir) then
CreateDir(HelpDir);
DMMain.odsHelpinDBDOC.SaveToFile(HelpDir+"\"+Self.ClassName+".doc");
ShellExecute(0, nil, PAnsiCHAR(HelpDir+"\"+Self.ClassName+".doc"), nil, nil, SW_SHOWNORMAL);
end;
end;
var
DataStr: String;
begin
// Пока установим признак успешного выполнения
Result := True;
case Command of
// Открытие заголовочной страницы
HELP_FINDER, HELP_CONTENTS:
OpenURL(Application.HelpFile);
// Поиск по ключевому слову
HELP_KEY:
OpenURL(Application.HelpFile + "?q=" + PChar(Data));
// Открытие темы по номеру
HELP_CONTEXT, HELP_CONTEXTPOPUP:
OpenURL(Application.HelpFile + "/article" + IntToStr(Data) + ".html");
// Расширенные команды:
HELP_COMMAND:
begin
DataStr := PChar(Data);
end;
// HELP_QUIT: - здесь можно закрыть окно браузера
// ... <- тут прочие команды, если надо
else
// Все прочие команды обрабатывать не умеем - указываем, что завершились неудачно
Result := False;
end;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Application.HelpFile := "help.hlp";
Application.OnHelp := FormHelp;
Кто знает, в чем может быть причина ошибки и как ее победить?
← →
DiamondShark © (2011-08-04 16:51) [1]Set CallHelp to true if the application should still invoke the help system after the event. Set CallHelp to false to prevent the default response by the help system.
← →
>|< (2011-08-04 19:08) [2]
> DiamondShark © (04.08.11 16:51) [1]
Добавил в этот обработчик первой строкой CallHelp := False;
Но он в него даже не заходит.
Если Application.HelpFile ничего не присваивать - никакой реакции на F1
Если присвоить любое значение - вываливается ошибка, приведенная выше.
В текст обработчика компилятор не заходит
← →
QAZ (2011-08-05 11:16) [3]а где связь между "открывать определенный PDF-файл" и HLP с DOC ?
← →
>|< (2011-08-05 14:21) [4]
> Application.HelpFile := "help.hlp";
это фейковое значение, чтобы сработал обработчик. А уже в самом обработчике открывается док и пдф
← →
Amoeba_ (2011-08-05 15:05) [5]
> >|< (05.08.11 14:21) [4]
>
>
> > Application.HelpFile := "help.hlp";
>
> это фейковое значение, чтобы сработал обработчик. А уже
> в самом обработчике открывается док и пдф
>
Не тем путем идешь. Оставь в покое
Application.HelpFile
и
Application.OnHelp
Нужно просто сделать свой обработчик для F1 и в нем открывать свои файлы.
← →
Anatoly Podgoretsky © (2011-08-05 15:20) [6]> Amoeba_ (05.08.2011 15:05:05) [5]
Где же еще делать, кроме этих и ряда еще других Help свойств. Вызывать из
HelpContext и HelpJump
← →
>|< (2011-08-05 15:41) [7]
> Amoeba_ (05.08.11 15:05) [5]
FYI
http://www.gunsmoker.ru/2011/02/delphi.html#supports
Абзац "Web/Online"
← →
kilkennycat © (2011-08-05 17:29) [8]гансмокер бредить не может
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c