![]() |
Hilfe mit F1 aufrufen
Ich benutze chm-Hilfe Dateien in meinem Programm. Drückt man im Hautpfenster F1, so öffne ich eine betsimmte Seite in der Hilfe:
Delphi-Quellcode:
Die Funktion Htmlhelp ist aus der entsprechenden Jedi Unit.
procedure TForm1.WndProc(var message: TMessage);
begin inherited; case message.Msg of WM_HELP: begin HtmlHelp(Handle, PChar(MYHELPFILE + '::\Programmoberfläche.html'), HH_DISPLAY_TOPIC, 0); end; end; end; Jetzt habe ich folgenden Effekt: Ruft man die Hilfe mit F1 auf und schliueßt man das Programm, kommt es zu einer AV. Ruft man die Hilfe nicht auf, geht alles ohne Problem. Der Fehler muss also im obigen Code sein. Rufe ich die Hilfe per Button-Klick auf, geht auch alles wunderbar. |
Re: Hilfe mit F1 aufrufen
Wie sieht denn der Code aus, der die Hilfe auf Buttondruck auslöst?
|
Re: Hilfe mit F1 aufrufen
Identisch:
Delphi-Quellcode:
HtmlHelp(Handle, PChar(MYHELPFILE+'::\Interneteinstellungen.html'), HH_DISPLAY_TOPIC, 0);
|
Re: Hilfe mit F1 aufrufen
Hmgrl. Weder JCL- noch JVCL Doku wollen mir jetzt irgendwas zu "HtmlHelp" sagen.
Hat beim Buttonklick keine andere Zeile was mit dem Hilfsaufruf zu tun? Und: Ich kenn mich mit inherited nicht so gut aus, hab mir in der OH grad nur ein bisl Text überflogen. Kanns sein dass die WndProc die du "inheritierst" vielleicht selbst auch auf irgendeine Weise auf F1 reagiert und nicht überschrieben wird? |
Re: Hilfe mit F1 aufrufen
Ich habs. Das dynamische Linken mag er nicht. Der Schalter in der zugehörigen Include-Datei muss deaktiviert sein:
Delphi-Quellcode:
{.$DEFINE HTMLHELP_DYNAMIC_LINK}
|
Re: Hilfe mit F1 aufrufen
Ah, auf DelphiSource hab ich schonmal rausgefunden dass es die Unit da separat zu geben scheint und von einem Holländer stammt ;-)
Im Tut auf DS wird die Prozedur ![]() Aber das tut ja nicht viel zur Sache, wenns beim Buttonklick trotzdem reibungslos klappt. Hmhmhm. Doof is des |
Re: Hilfe mit F1 aufrufen
Jupp, stammt von Marcel van Brakel, könnte mich eigentlich mal wieder bei ihm melden im ICQ. :?
|
Re: Hilfe mit F1 aufrufen
hups :mrgreen:
öhm... Naja, also gern geschehen, war mir eine Freude dir wichtige Tipps zu geben die dich der Lösung näher gebracht haben :oops: :zwinker: |
Re: Hilfe mit F1 aufrufen
Zitat:
|
Re: Hilfe mit F1 aufrufen
Das weiß ich. Aber es liegt definitiv an dem dynamischen Laden. Was soll ich also anderes machen?
|
Re: Hilfe mit F1 aufrufen
Dass es am dynamischen Laden liegt, glaube ich nicht. Dann müsste ja auch der normale Aufruf via Button (den du erwähnt hast) Probleme bereiten. Eigentlich unterstützt Delphi doch HLP-Dateien von sich aus. Und dank "OnHelp"-Ereignis kannst du doch diese Kommandos für CHM umbauen. Ich glaube, ein Abfangen von WM_HELP ist damit eigentlich nicht notwendig.
PS: Ich bin ja schon froh, dass du nicht einfach nur "ShellExecute" benutzt. ;) |
Re: Hilfe mit F1 aufrufen
Hallo Luckie,
du schreibst, dass du deine .chm mit der F1 Taste aufrufst. Wie hast du deine Datei in Delphi eingebunden? Mit HelpContext, oder HelpKeyword? Ich habe folgsende Files runtergeladen: das zip-File Delphikit mit dem Inhalt hh.pas, hh_funcs.pas und hh_doc.txt, sowie das zip-File D6OnHelpFix mit dem Inhalt Compilers_.inc, D6OnHelpFix.pas und Readme.txt Die .pas Dateien und die .inc Datei kopierte ich in das Source Verzeichnis für die Units. Dann bin ich nach diesem Tutorial vorgegengen: ![]() Darin findet man aber nur eine Beschreibung für die Einbindung der .chm über HelpContext, nicht über HelpKeyword. Und auch in der Unit hh_funcs wird in der Funktion HelpHook der Klasse THookHelpSystem nur Help_Context, Help_SetPopup_Pos und Help_ContextPopup unterstützt. Wie kann man die .chm also über HelpKeyword einbinden? |
Re: Hilfe mit F1 aufrufen
Ich habe es über HelpContext gemacht. Guckt dir hier mal
![]() |
Re: Hilfe mit F1 aufrufen
Danke...
Das ist doch mal ne tolle Doku... Ich werd mir das jetzt mal anschauen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz