Thema: Delphi Hilfe erstellen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.100 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hilfe erstellen

  Alt 16. Jul 2018, 15:43
Siehe OH?

Command gibt an was es für eine Hilfe ist. (Context oder Keyword)
und in Data ist dann entweder der Context (Integer) oder das Keyword (PString) drin.

Und in CallHelp gibst DU an, ob du die Hilfe-Anfrage verarbeitet hast, oder ob es doch noch an Standardbehandlung weitergereicht werden soll.

[add] Der Anfang von etwas, dass ich mal vor paar Jahren schrieb.
Delphi-Quellcode:
function THelpModul.ApplicationEvents1Help(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
...
begin
  Log := '';
  try
    {$REGION 'originalen Hilfeaufruf loggen'}
    case Command of
      HELP_CONTEXT: S := ' - HELP_CONTEXT (Display topic in ulTopic)';
      HELP_QUIT: S := ' - HELP_QUIT (Terminate help)';
      HELP_INDEX: S := ' - HELP_INDEX/HELP_CONTENTS (Display index)';
      HELP_HELPONHELP: S := ' - HELP_HELPONHELP (Display help on using help)';
      HELP_SETINDEX: S := ' - HELP_SETINDEX/HELP_SETCONTENTS (Set current Index for multi index help)';
      HELP_CONTEXTPOPUP: S := ' - HELP_CONTEXTPOPUP';
      HELP_FORCEFILE: S := ' - HELP_FORCEFILE';
      HELP_CONTEXTMENU: S := ' - HELP_CONTEXTMENU';
      HELP_FINDER: S := ' - HELP_FINDER';
      HELP_WM_HELP: S := ' - HELP_WM_HELP';
      HELP_SETPOPUP_POS: S := ' - HELP_SETPOPUP_POS';
      HELP_KEY: S := ' - HELP_KEY (Display topic for keyword in offabData)';
      HELP_COMMAND: S := ' - HELP_COMMAND';
      HELP_PARTIALKEY: S := ' - HELP_PARTIALKEY';
      HELP_MULTIKEY: S := ' - HELP_MULTIKEY';
      HELP_SETWINPOS: S := ' - HELP_SETWINPOS';
      else S := '';
    end;
    Log := Log + Format('CallHelp: Command=%d%s Data=%d'#10, [Command, S, Data]);
    if Command = HELP_COMMAND then
      Log := Log + ' Keyword/JumpID="' + PChar(Data) + '"'#10
    else if (Command = HELP_CONTEXT) or (Command = HELP_CONTEXTPOPUP) then
      Log := Log + ' ContextID=' + IntToStr(THelpContext(Data)) + #10
    else
      Log := Log + ' Keyword/ContextID/JumpID nicht erkannt'#10;
    {$ENDREGION}

    {$REGION 'nicht alle Komandos verarbeiten (z.B. wird beim F1 ein HELP_SETPOPUP_POS vor dem HELP_COMMAND aufgerufen)'}
    //if not (Command in [HELP_INDEX, HELP_CONTEXT, HELP_COMMAND, HELP_WM_HELP, HELP_QUIT]) then
    // Exit(True);
    case Command of
      HELP_INDEX, HELP_CONTEXT, HELP_CONTEXTPOPUP, HELP_COMMAND, HELP_WM_HELP, HELP_QUIT: ; // mit CASE, da IN einen zu kleinen Wertebereich zur Verfügung stellt
      else Exit(True);
    end;
    {$ENDREGION}

    {$REGION 'HELP_QUIT: das Hilfefenster soll geschlossen werden'}
    if Command = HELP_QUIT then begin
      FreeAndNil(HauptFormAbstract.FormWebBrowser);
      Exit(True);
    end;
    {$ENDREGION}

    ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Jul 2018 um 15:53 Uhr)
  Mit Zitat antworten Zitat