Thema: Delphi Delphi 9

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#33

Re: Delphi 9

  Alt 28. Apr 2004, 17:25
Zitat von citybreaker:
Öh naja, warum sollte man sie grpßartig mit langen Codes einbinden wenn man sie doch mit ShellExcute aufrufen kann?
Das ist die typische Antwort von jemanden, der keine Ahnung hat -

a) HLP-Dateien werden normalerweise von Delphi an sich unterstützt. Bei Delphi 5 ist das auch kein Problem. Bei D7 traten allerdings Probleme auf, die ich mir nur durch die Änderung des dahinter liegenden Codes erklären kann, denn an meinem Quellcode habe ich nichts geändert.

b) CHM-Hilfedateien können via ShellExecute gestartet werden. Aber was machst du wenn der Dateityp nicht bekannt ist? Beispiel: Win95 und NT4. Kannst du wirklich 100% garantieren, dass ein User, der dein Programm inkl. CHM-Hilfe benutzen möchte, dies nicht auf einem Original-Win95 oder NT4 ohne CHM-Update macht?
Aus dem Grund ist das entsprechende API grundsätzlich vorzuziehen. Im Fall der JEDI-Version gibt es bspw. eine bool-Funktion, mit der man prüfen kann ob CHM-Hilfe überhaupt möglich ist. Ist das nicht der Fall, lassen sich die Anweisungen deaktivieren, und Fehler treten gar nicht erst auf.

c) Und da sind wir bei D6/7, für die ein Fix notwendig ist, weil einige Hilfe-Kommandos nicht mehr an das Programm übermittelt werden. Bei D5 war es problemlos möglich, alle HLP-Kommandos umzuleiten und intern dafür zu sorgen, dass stattdessen die neuen CHM-Kommandos wirksam werden. Im Klartext: du musstest nicht deinen Quellcode Zeile für Zeile durchgehen und alle alten Kommandos suchen, sondern du hast sie abgefangen. Effektiv und elegant!
Da aber Borland ab D6 irgendwas am System geändert hat, ist eine Unit notwendig, die man u.a. von www.helpware.net bekommen kann.

d) Der letzte Nachteil: Zeige mir bitte, wie man mit ShellExecute ein ganz bestimmtes Thema (sprich: irgendwas aber nicht die Startseite, die man auch via Doppelklick sieht) in einer Hilfedatei (ob HLP oder CHM) öffnet. Das geht nämlich auch nur mit den entsprechenden Funktionen.
  Mit Zitat antworten Zitat