Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1311166476
KACHAN
2011-07-20 16:54
2011.11.27
координаты курсора


2-1312809401
Onyx2012
2011-08-08 17:16
2011.11.27
Drag&amp;Drop в Express Quantum Grid


2-1312459872
ixen
2011-08-04 16:11
2011.11.27
Firebird, Поток и DeadLock


2-1312799819
А
2011-08-08 14:36
2011.11.27
mysql zoesdb нет коннекта


15-1311963926
Petr V. Abramov
2011-07-29 22:25
2011.11.27
Oracle 11 R1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский