AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Hilfe einbinden - klappt nur halb ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe einbinden - klappt nur halb ?!

Ein Thema von moelski · begonnen am 16. Mai 2005 · letzter Beitrag vom 18. Mai 2005
 
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Hilfe einbinden - klappt nur halb ?!

  Alt 16. Mai 2005, 09:48
Moin !

Ich versuche gerade eine Hilfe in meine Anwendung einzubauen. So irgendwie funzt das schon, aber nicht so recht.

Also, ich nutze folgendes:
Tutorial: http://www.dsdt.info/tutorials/htmlhelp/
Header bzw. Fix von hier: http://www.helpware.net/delphi/index.html
Popup Info hier: http://www.helpware.net/htmlhelp/how_to_whatsthis.htm
Achja und ich nutze D6.

Soweit so gut. Nun habe ich zum Erstellen von der CHM-Hilfe das Tool Help & Manual. Aber das ist sicherlich erstmal Nebensache. Nun verwende ich folgenden Code in meinem Projekt (biHelp ist auf True gesetzt!):

Delphi-Quellcode:
{Alle 'Whats This' und F1 Help_ContextPopup WinHelp-Ereignisse werden
hier ankommen}

procedure F1HelpEvent(ContextHelpID: Longint; X, Y: Integer);
var hhpopup: HH.THHPopup;
begin
  with hhpopup do begin
    // Größe dieser Struktur
    cbStruct := SizeOf(hhpopup);

    // Instanz-Handle für String-Ressource
    hinst := 0;

    // Enthält 0, eine Ressourcen-ID oder eine Topic-ID in
    // einer Textdatei
    idString := ContextHelpID;

    // Enthält den Text, der angezeigt werden soll, wenn idString 0 ist
    pszText := nil;

    // top center (in Pixeln) des Popup-Fensters
    pt := Point(x,y);

    // Textfarbe, verwende -1 für Standard; RGB-Wert (hier rot)
    clrForeground := COLORREF($000000FF);

    // Hintergrundfarbe, verwende -1 für Standard; RGB-Wert
    clrBackground := COLORREF(-1);

    // Anzahl an Leerzeichen zwischen Fensterrand und Text, -1 für
    // jeden Teil zum Ignorieren
    rcMargins := Rect(-1,-1,-1,-1);

    // Schrift: facename, point size, char set, BOLD ITALIC UNDERLINE
    pszFont := '';
  end;
  HtmlHelp(Form1.Handle,
    PChar(ExtractFilePath(ParamStr(0))+'Hilfe\Hilfe.chm::/Cshelp.txt'),
    HH_DISPLAY_TEXT_POPUP, DWORD(@hhpopup));
end;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var chmFile: string;
begin
  chmFile := ExtractFilePath(ParamStr(0))+'Hilfe\Hilfe.chm';

  mHHelp := nil;

  if not FileExists(chmFile) then
    ShowMessage('Hilfe-Datei nicht gefunden'#13+chmFile);

  {HH 1.2 oder höher Versionskontrolle}
  if (hh.HHCtrlHandle = 0)
    or (hh_funcs._hhMajVer < 4)
    or ((hh_funcs._hhMajVer = 4) and (hh_funcs._hhMinVer < 73)) then
      ShowMessage('Diese Anwendung erfordert die Installation der '+
      'MS HTML Help 1.2 oder höher');

  {Hook - verwendet HH_FUNCS.pas}
  mHHelp := hh_funcs.THookHelpSystem.Create(chmFile, '', htHHAPI);
  mHHelp.HelpCallback2 := F1HelpEvent;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  HHCloseAll; // Schließt alle Hilfe-Fenster
  if Assigned(mHHelp) then
    mHHelp.Free;
end;

procedure TForm1.TBXItem2Click(Sender: TObject);
begin
  DefWindowProc(handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
end;
Nun passieren aber ganz seltsame Dinge ... Wenn ich z.B. die F1 Taste drücke dann kommt ein Popup. An dieser Stelle (also direkt nach dem Programmstart) sollte aber doch dann die Hilfe aufgehen, oder sehe ich da was falsch?
Eigentlich will ich die Popups doch nur, wenn ich auch den Button TBXItem2 angeklickt habe. Dieser Button hat bei mir aber garkeine Funktion.
Und dann noch eine Frage im Zusammenhang mit den Popups ... Angenommen ich habe da jetzt ein Label wo ich eine HilfeID vergebe. Nun kann ich ja auf die ID ein Popup "binden". Bedeutet das dann, das ich jetzt keine "normale" Hilfe mehr zu dem Label haben kann? Also ein Text in der HTML-Hilfe.

Und ich verstehe auch nicht so ganz die Sache mit den Popuptexten. Werden die jetzt in das CHM File mit reinkompiliert, oder muss ich die Datei extra mitliefern!?

Hoffe jemand kann mir ein paar Tips geben
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz