![]() |
TWebbrowser mit eigenen Glyphs im Designmode
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen!
Habe ein Problem mit dem TWebbrowser. Ich versuche im Designmode eigene Glyphs für die unterschiedlichen Tags anzuzeigen. MSDN erklärt es ![]() Versucht habe ich folgendes:
Delphi-Quellcode:
Hat jemand von Euch eine Idee woran es liegen kann?
Const
IID_IOleCommandTarget:TGUID='{B722BCCB-4E68-101B-A2BC-00AA00404770}'; CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}'; CGID_MSHTML : TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}'; procedure TMainform.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); var wb2: IWebBrowser2; doc: IHTMLDocument2; Target : IOleCommandTarget; Valin,Valout : OleVariant; PtrGUID : PGUID; begin if Succeeded(pDisp.QueryInterface(IID_IWebBrowser2, wb2)) then begin doc := wb2.Document as IHTMLDocument2; if Assigned(DOC) then begin doc.onMouseOver := TEventObject.Create(Document_OnMouseOver) as IDispatch; Doc.designMode := 'on'; // Funktioniert! Doc.execCommand('2D-Position', false,true); // Funktioniert! Doc.execCommand('MULTIPLESELECTION',false,true); // Funktioniert! Doc.execCommand('Liveresize',false,true); // Funktioniert! wb2.QueryInterface(IID_IOleCommandTarget,Target); New(PtrGUID); PtrGUID^ := CGID_MSHTML; Valin := '"%%div^^%%C:\\temp2\\glyphs\\divend.gif^^%%0^^%%3^^%%0^^%%4^^%%20^^%%15^^%%20^^%%15^^**'; // Target.Exec(PtrGUID,2320,OLECMDEXECOPT_DODEFAULT,valin,valout); Sollte eigentlich die Build In Glyphs zeigen // Leider nicht... Target.Exec(PtrGUID,2337,0,valin,valout); // Funktioniert auch nicht.... // Target._Release; // Dieser Aufruf führt zu einer AV beim beenden des Programms... Dispose(PtrGUID); end; end; { #define IDM_SHOWALLTAGS 2320 #define IDM_SHOWALIGNEDSITETAGS 2321 #define IDM_SHOWSCRIPTTAGS 2322 #define IDM_SHOWSTYLETAGS 2323 #define IDM_SHOWCOMMENTTAGS 2324 #define IDM_SHOWAREATAGS 2325 #define IDM_SHOWUNKNOWNTAGS 2326 #define IDM_SHOWMISCTAGS 2327 #define IDM_SHOWZEROBORDERATDESIGNTIME 2328 #define IDM_EMPTYGLYPHTABLE 2336 #define IDM_ADDTOGLYPHTABLE 2337 #define IDM_REMOVEFROMGLYPHTABLE 2338 #define IDM_REPLACEGLYPHCONTENTS 2339 } Grüße Frank :coder: |
Re: TWebbrowser mit eigenen Glyphs im Designmode
Hallo Frank,
du musst beim Kopieren etwas sorgfältiger sein - die opening quotes aus dem SDK gehören da nicht hin:
Code:
Und mit _Release() musst du dich auch nicht herum schlagen. Wenn du das Interface vorzeitig freigeben möchtest, dann einfach mit Target := nil.
vIn := '[color=#ff0000]"[/color]%%div^^ ...
Grüße vom marabu |
Re: TWebbrowser mit eigenen Glyphs im Designmode
Zitat:
Leider funktioniert es trotzdem nicht... Auch der IDM_Showalltags funktioniert nicht... Trotzdem Danke Frank :coder: |
Re: TWebbrowser mit eigenen Glyphs im Designmode
Bei mir funktioniert es. Allerdings halte ich mich auch an die Dokumentation und gebe einen URL für das image an. Solltest du vielleicht auch mal probieren (file:///).
Delphi-Quellcode:
marabu
procedure TDemoForm.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); var wb2: IWebBrowser2; doc2: IHTMLDocument2; oct: IOleCommandTarget; vIn: OleVariant; pg: PGUID; begin if Succeeded(pDisp.QueryInterface(IID_IWebBrowser2, wb2)) then begin doc2 := wb2.Document as IHTMLDocument2; doc2.designMode := 'On'; doc2.execCommand('2D-Position', false, true); doc2.execCommand('MultipleSelection', false, true); doc2.execCommand('LiveResize', false, true); vIn := '%%input^^' + '%%http://www.delphipraxis.net/images/smiles/icon_biggrin.gif^^' + '%%0^^%%3^^%%0^^%%4^^%%15^^%%15^^%%15^^%%15^^**' ; oct := wb2 as IOleCommandTarget; New(pg); pg^ := CGID_MSHTML; oct.Exec(pg, 2337, OLECMDEXECOPT_DODEFAULT, vIn, EmptyParam); Dispose(pg); end; end; |
Re: TWebbrowser mit eigenen Glyphs im Designmode
PS.: Ach ja habe im Debugger übrigens folgende Meldung beim Aufruf von:
Delphi-Quellcode:
Modul laden: UNKNOWN_MODULE_541. ohne Debug-Infos..
Target.Exec(PtrGUID,2337,0,valin,valout);
Habe als Bitmap-Quelle mal den local webserver angegeben... Es passiert auch überhaupt kein request auf die URL. Falles es hilft! Frank :coder: |
Re: TWebbrowser mit eigenen Glyphs im Designmode
Liste der Anhänge anzeigen (Anzahl: 1)
Mit den Eigenheiten von D2K5 kann ich dir nicht helfen. Im Anhang der bei mir funktionerende Code.
marabu |
Re: TWebbrowser mit eigenen Glyphs im Designmode
:dp: :love:
DANKE es funktioniert! :dancer2: Übrigens auch meine procedure... lediglich der div Tag will nicht... Nachdem ich ein p genommen haben, lief es sofort... Warum auch immer... Aber das werde ich schon finden... Vielen Dank für deine Mühe... :thumb: Frank :coder: |
Re: TWebbrowser mit eigenen Glyphs im Designmode
:wall: :wall: :wall:
Ojeee Danke nochmal für Deine Tipps... Ich habe den Fehler gefunden... :wall: War gestern abend vielleicht ein bischen zu spät... Der DIV Tag, den ich zum testen genommen habe, war eine schlechte Idee... Leider war kein DIV Tag in meiner Testdatei.... :roteyes: Jetzt funkt es.... Grüsse Frank :coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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