Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#1

TWebBrowser (VCL): Suche funktioniert nur sporadisch

  Alt 16. Okt 2018, 18:05
Ich habe ein Hilfe-System entwickelt, das (u.a.) die WebBrowser-Komponente verwendet.

Hier geht es im Moment um die VCL-Version (daneben gibt es noch eine FMX-Version für die 3 Desktop-Plattformen).

Um in einem Text unter Windows zu suchen, verwende ich die Funktion, die ich hier im Forum gefunden habe, um den Suchen-Dialog anzeigen zu lassen (https://www.delphipraxis.net/41195-w...er-suchen.html).

Leider funktioniert die Suche (also Hervorhebung des gefundenen Textes mit gelber Farbe, siehe anliegenden Screenshot) nur sporadisch. Bei einem Programmstart ja, dann wieder nicht. In der VCL-Fassung wird der HMTL-Text von einer für das jeweilige Thema temporär erzeugten Datei geladen.

Das ist die Funktion:

Delphi-Quellcode:
procedure WB_ShowFindDialog(AWebbrowser: TWebbrowser);
const
 CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
 HTMLID_FIND = 1;
 HTMLID_VIEWSOURCE = 2;
 HTMLID_OPTIONS = 3;
var
 CmdTarget : IOleCommandTarget;
 vaIn, vaOut: OleVariant;
 PtrGUID: PGUID;
begin
 New(PtrGUID);
 PtrGUID^ := CGID_WebBrowser;
 if AWebbrowser.Document <> nil then
   try
     AWebbrowser.Document.QueryInterface(IOleCommandTarget, CmdTarget);
     if CmdTarget <> nil then
       try
         CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);
       finally
         CmdTarget._Release;
       end;
   except
     // Nothing
   end;
 Dispose(PtrGUID);
end;
Woran kann das liegen, hat evtl. schon mal ein ähnliches Problem hier gehabt?
Miniaturansicht angehängter Grafiken
browser-search.jpg  

Geändert von Harry Stahl (17. Okt 2018 um 09:42 Uhr)
  Mit Zitat antworten Zitat