Tworzenie helpa

Odpowiedz Nowy wątek
Rysiu19
2009-07-05 13:28
Rysiu19
0

Witam
Witam zrobiłem helpa w Microsoft Help Workshop
przy pomocy poradnika http://support.microsoft.com/kb/828419/pl i mam problem z użyciem tego w delphi. Może mi ktoś krok po kroku wyjaśnić jak dodać tego helpa do aplikacji lub wysłać jakiś poradnik - szukałem na googlach i nic działającego nie znalazłem.

Pozostało 580 znaków

2009-07-05 20:14
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 dni temu

Lokalizacja: Szczecin

0

Ja się wiele helpami w formacie hlp nie bawiłem. Ciężko się to w Wordzie w rtfie przygotowuje, a później
na gotowym skądś wytrzaśniętym projekcie hpj zmieniałem tylko głowny temat i kompilowałem, wiem tylko,
że helpa pokazęsz tak jak poniżej pokazałem. Lepiej zainteresuj się formatem CHM i programem WinCHM
przy pomocy którego można tworzyć fajnie wyglądająće helpy z plików html, jest też Microsoftowy HTML
Help Workshop, ale jego nie używałem. W google znajdziesz też kilka przykładów jak obsłużyć plik CHM.

  Application.HelpFile := ('pomoc.hlp');
  Application.HelpCommand(HELP_CONTENTS, 0);

Pozostało 580 znaków

Jaca20
2009-07-06 20:53
Jaca20
0

dzieki za pomoc już znalacłem- ShellExecute(Handle, 'open', 'help.chm', ,, SW_SHOWNORMAL);

Pozostało 580 znaków

2009-07-06 22:14
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 dni temu

Lokalizacja: Szczecin

0

Tak również można, ale taka metoda ma tę wadę że Użytkownik może nie mieć skojarzone prawidłowo
w rejestrze pliku chm i wtedy nie podejrzy helpa. Natomiast jest kontrolka - bilbioteka hhctrl.ocx, która Ci
włąsnie może pokazać plik pomocy chim i z tego co testowałem pod XP, nawet jak ją przeniesiemy czy
też usuniemy - powinna przywrócić się na nowo. Dlatego do otwarcie pliku *.chm polecam taki sposób:

const
  Help_Ocx = 'hhctrl.ocx';
  Plik_Pomocy = 'pomoc.chm';
//...deklaracja funkcji później dynamicznie łądowanej z pliku hhctrl.ocx
   HtmlHelp : function (hwndCaller: HWND; pszFile: PChar; uCommand: UINT; dwData: DWORD): HWND; stdcall;
// ...I gdzieś w kodzie na przykład przycisku czy pozycji menu:
var
  H : Thandle;
begin
  H := LoadLibrary(PChar(Help_Ocx));
  if Dll_H = 0 then
  begin
    MessageBox(Application.Handle,
    PChar('Nie można załadować pliku: ' + Help_Ocx + '!' +#13#10+
    'Otwarcie pliku Pomocy nie będzie możliwe.'),
    PChar(Application.Title), MB_OK + MB_ICONERROR);
    Exit;
  end;
  HtmlHelp := GetProcAddress(H, 'HtmlHelpA');
  if FileExists(Plik_Pomocy) = True then
  begin
    HtmlHelp(Application.Handle, PChar(Plik_Pomocy), 0, 0);
  end
  else
  begin
    MessageBox(Application.Handle,
    PChar('Nie można wczytać pliku pomocy ' + Plik_Pomocy + '!'),
    PChar(Application.Title), MB_OK + MB_ICONERROR);
  end;
end;

Jeżeli natomiast chcesz podejrzeć konkretny temat o jakimś numerze contextu, to w funkcji HtmlHelp te
przedostatnie zero zastępujesz cyfrą 15 ($0F), a zamiast ostatniego zera podajesz numer id tematu, a
więcej ospisane jest w przykładzie na http://www.swissdelphicenter.ch/torry/showcode.php?id=402


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0