Entwickler-Ecke

Sonstiges (Delphi) - Probleme mit HLP-Datei unter Delphi 7


Delete - Mi 25.02.04 10:40
Titel: Probleme mit HLP-Datei unter Delphi 7
(Dies ist ein paralleles Posting im DF und in der DP. Ich brauche eine möglichst breite Basis für Antworten und evtl. Lösungen.)

Meine Frage richtet sich speziell an Benutzer von Delphi 6 und 7. Habt ihr auch Probleme beim Anzeigen von ganz gewöhnlichen Hilfedateien im HLP-Format? Ich habe vorher mit Delphi 5 gearbeitet, und da hat es in der Hinsicht nie Probleme gegeben.

Ich weiß, dass speziell bei der Benutzung von CHM-Hilfedateien ein Fix für D6 und D7 erforderlich ist, weil sich irgendetwas am Hilfesystem von Delphi verändert hat, wodurch ein eigenes "OnHelp"-Ereignis nicht mehr wie gewohnt funktioniert.

Aber bei HLP-Dateien? :?


Meine Erfahrungen mit einem simplen VCL-Beispiel:

Wie gesagt: es geht hier um HLP-Dateien und Delphi 6 und 7. Und meine Frage richtet sich an die, die in ihren Programmen eine Hilfedatei eingebunden haben oder dies versuchen -

Kann noch jemand diese Probleme nachvollziehen? (Es würde übrigens schon ausreichen, eine beliebige HLP-Datei zu verwenden und das Beispiel zu "HelpCommand" aus der Delphi-Hilfe einfach abzutippen oder zu kopieren.)

Oder hatte jemand das Problem? In dem Fall würde mich die Lösung interessieren, weil ich es sehr ärgerlich finde.

Gruß.


Chatfix - Mi 25.02.04 15:58

Also ich habe das mal ausprobiert (D6 Enterp).
Ich habe das Beispiel aus der Hilfe genommen.

Einmal mit

Delphi-Quelltext
1:
Application.HelpCommand(HELP_FINDER, 0);                    

und mit

Delphi-Quelltext
1:
Application.HelpCommand(HELP_PARTIALKEY, 0);                    

einmal kommt der Index (leer) und einmal der Index (mit vorselektiertem "v" ?!)


Delete - Mi 25.02.04 22:42

Nee, das meinte ich nicht. Bei mir ist es so: Wenn ich die Hilfedatei zuweise und aufrufe:

Delphi-Quelltext
1:
2:
Application.HelpFile := 'bla.hlp';
Application.HelpCommand(HELP_FINDER,0);

dann erscheint zwar das Inhaltsverzeichnis (sofern eine CNT-Datei vorhanden ist), aber vorher "flimmert" kurz die erste Hilfeseite auf und verschwindet dann. Dieses Problem gab es bei Delphi 5 nicht, und wenn ich direkt über das API gehe:

Delphi-Quelltext
1:
WinHelp(self.Handle,'bla.hlp',HELP_FINDER,0);                    

dann "flimmert" es auch bei D7 nicht.

Und bei der Kontexthilfe das gleiche: Ich klicke auf den ?-Button, und der Cursor ändert sich entsprechend. Klicke ich dann auf ein Control mit "HelpContext" erscheint nicht einfach bloß das gewünschte Popup mit der Kontext-Info, sondern es erscheint ein Hilfefenster mit der ersten Hilfeseite. Evtl. (die Betonung liegt dabei auf evtl) erscheint auch das Popup, aber das ist keineswegs immer der Fall.

Alles Probleme, die ich bei Delphi 5 nie hatte.


btw: Bei .NET wird´s wieder einfacher. CHMs, COLs (zusammengefasste CHMs als Collection) und HTMLs mit dem gleichen Befehl. Und Kontextinfos können direkt im Programm angegeben werden; eine Hilfedatei ist nicht erforderlich. ;)