AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Styles und Hilfe im chm-Format

Ein Thema von Jelen · begonnen am 21. Apr 2017 · letzter Beitrag vom 4. Jun 2024
 
Jelen

Registriert seit: 5. Nov 2003
45 Beiträge
 
#12

AW: Styles und Hilfe im chm-Format

  Alt 3. Mai 2017, 09:06
Hallo!
@Luckie: Danke für deinen "zurück zum Thema" Einwurf !
Inzwischen hab' ich die Sache einigermaßen in den Griff bekommen - falls jemand von Euch vor demselben Problem steht, hier meine Lösung.

Den Eintrag Vcl.HtmlHelpViewer habe ich aus der uses-Liste rausgenommen und statt dessen ein TApplicationEvents Objekt eingesetzt, um alle Hilfeaufrufe zentral abzufangen und die chm-Hilfedatei selbst aufzurufen:
Code:
function TForm1.ApplicationEventsHelp (Command: Word; Data: NativeInt;
                                       var CallHelp: Boolean): Boolean;
 begin
  CloseHelpWnd;
  Result := ShellExecute(0,'open','hh.exe',
                         PWideChar('-mapid '+IntToStr(Data)
                                   +' ms-its:'+Application.HelpFile),
                         nil,SW_SHOW) = 32;
  CallHelp := false;
 end;
Damit ist das CHM-Hilfefenster nun unabhängig von meiner Anwendung, d. h. keine Child / Parent Beziehung mehr, und schon reagiert es auch auf die Styles meiner Anwendung nicht mehr, die Anzeige im Fenster ist sauber.
Weil nun aber jeder Hilfeaufruf aber ein neues Fenster erzeugt, schieße ich ein evtl. bestehendes vorher ab:
Code:
procedure TForm1.CloseHelpWnd;
 const HelpTitle = 'Beispiel';   { <= Hier den Titel Eurer Hilfedatei einsetzen!! }
 var HlpWind: HWND;
 begin
  HlpWind := FindWindow('HH Parent',HelpTitle);
  if HlpWind <> 0 then PostMessage(HlpWind,WM_Close,0,0);
 end;
Einen weiterer Aufruf von CloseHelpWnd im FormDestroy-Event sorgt dafür, dass ein evtl. bestehendes Hilfefenster zusammen mit der Anwendung geschlossen wird.

Etwas unzufrieden bin ich noch mit dem Schließen und Neuöffnen des Hilfefensters, wenn nacheinander verschiedene Hilfethemen aufgerufen werden. Bestimmt gibt es eine Möglichkeit über Messages, das bestehende Hilfefenster zu überreden, einfach ein anderes Thema anzuzeigen - aber dazu konnte ich einfach nichts finden.
Falls jemand von Euch dazu eine Lösung hat, bitte hier her damit !
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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