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?