D5:Help integrieren

Hallo,

ich habe mal zu Testzwecken ein kleines HLP mit RoboHelp erstellt. Wie können HLP-Files (WinHelp 4.0) in eine Delphi 5-Anwendung integriert werden, so dass einerlei bei F1 die Hauptseite („Welcome“, so schätz ich zumindest läuft das) angezeigt wird, und sonst das Topic, das mit dem aufrufenden Dialog „verbunden“ ist…

Roger

application.helpfile
application.helpcontext

gruss rq

application.helpfile
application.helpcontext

Ja, aber wie geschiet die effektive Ausführung der Hilfe ? Bei der Zuweisung des HelpContext-Properties ?

Sollte ich beispielsweise auf irgend einer Sub-Form einen Key-Handler implementieren, der bei F1 das OnClick-Ereignis des „Help“-Buttons ausführt ? (Ich verwende nämlich nicht nur standard or Bit-Buttons)

Roger

Hi Roger,

Ja, aber wie geschiet die effektive Ausführung der Hilfe ? Bei
der Zuweisung des HelpContext-Properties ?

nö, die Ausführung der kontextsensitiven Hilfe bei „F1“ geschieht automatisch durch die VCL. Laß Dir von der Online-Hilfe das Property „TWinControl.HelpContext“ erklären – da steht alles, was Du wissen willst.

Für weitergehende Hilfestellungen wie z. B. Popup-Hilfefenster gibt’s zusätzlich noch „Application.HelpCommand“, was ebenfalls in der Online-Hilfe beschrieben ist.

Sollte ich beispielsweise auf irgend einer Sub-Form einen
Key-Handler implementieren,

Nee nee, um Himmels willen…

Mit freundlichem Gruß
Martin

Hallo,
das ist ja wirklich erstaunlich einfach, sogar mit Kontext-Sensitiver Hilfe :wink:)

Roger

Hi,

das ist ja wirklich erstaunlich einfach, sogar mit
Kontext-Sensitiver Hilfe :wink:)

sag ich doch!

Als Ergänzung noch: Du willst außer der kontextsensitiven Hilfe („F1“) sicher noch nen Menüpunkt „Hilfe“ anbieten, von dem aus der User die „Home“-Seite des Hilfesystems anfordern kann. In den Event-Handler dieses Menüpunktes schreibst Du

Application.HelpCommand(HELP_CONTENTS,0)

Damit weißt Du dann schon alles, was Du zur Ausstattung einer Anwendung mit einem Standard-Hilfesystem wissen mußt.

Gruß
Martin

Ich habe das über ein TAction gelöst. ShortCut auf F1.
Handling mit

var HK: THelpContext;
begin
HK:=ActiveControl.HelpContext;
if HK=0 then HK:=HelpContext;
Application.HelpContext(HK);
end;

(nach Gedächtnis, ungetestet)

Gruss RQ

Hi RQ,

Ich habe das über ein TAction gelöst. ShortCut auf F1.
Handling mit

var HK: THelpContext;
begin
HK:=ActiveControl.HelpContext;
if HK=0 then HK:=HelpContext;
Application.HelpContext(HK);
end;

klar – warum einfach, wenn’s auch kompliziert geht? Den Mechanismus, den Du da programmiert hast, ist doch genau der, der bereits fix und fertig zur simpelstmöglichen Benutzung durch das „HelpContext“-Property in der VCL implementiert ist? Auch Dir darf ich die Lektüre der Online-Hilfe zum Property „HelpContext“ ans Herz legen.

Sorry, aber mit manchen Radneuerfindungen hab ich so meine Probleme… (ist keine Kritik an Deiner Person!).

Tschüss
Martin

Hi Martin wieauchimmer,

Im Prinzip ist das natürlich richtg. Über die Action kann ich jedoch auch den Hilfeaufruf per Steuerelement kontextsensitiv ablaufen lassen. Wenns da auch eine elegante eingebaute Möglichkeit gibt, lass es mich bitte wissen.

Gruss

RQ

Naja, Architektur-mässig ist das doch gar nicht so blöd, was Martin da gemacht hat und sehr komfortabel für „What’s this?“-Hilfe…