AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebbrowser mit eigenen Glyphs im Designmode
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser mit eigenen Glyphs im Designmode

Ein Thema von Mavarik · begonnen am 30. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#1

TWebbrowser mit eigenen Glyphs im Designmode

  Alt 30. Mär 2006, 23:38
Hallo Zusammen!

Habe ein Problem mit dem TWebbrowser.
Ich versuche im Designmode eigene Glyphs für die unterschiedlichen Tags anzuzeigen.

MSDN erklärt es hier

Versucht habe ich folgendes:

Delphi-Quellcode:
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
        }
Hat jemand von Euch eine Idee woran es liegen kann?

Grüße Frank
Angehängte Dateien
Dateityp: exe editglyphs_371.exe (160,1 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 07:55
Hallo Frank,

du musst beim Kopieren etwas sorgfältiger sein - die opening quotes aus dem SDK gehören da nicht hin:

Code:
vIn := '[color=#ff0000]"[/color]%%div^^ ...
Und mit _Release() musst du dich auch nicht herum schlagen. Wenn du das Interface vorzeitig freigeben möchtest, dann einfach mit Target := nil.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 08:06
Zitat von marabu:
Hallo Frank,

du musst beim Kopieren etwas sorgfältiger sein - die opening quotes aus dem SDK gehören da nicht hin:

Code:
vIn := '[color=#ff0000]"[/color]%%div^^ ...
Und mit _Release() musst du dich auch nicht herum schlagen. Wenn du das Interface vorzeitig freigeben möchtest, dann einfach mit Target := nil.

Grüße vom marabu
Ja ist beim Kopieren hier ins Forum passiert... In meinem Quellcode habe ich es nicht...

Leider funktioniert es trotzdem nicht...

Auch der IDM_Showalltags funktioniert nicht...

Trotzdem Danke

Frank
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 08:16
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:
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;
marabu
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 08:21
PS.: Ach ja habe im Debugger übrigens folgende Meldung beim Aufruf von:
Target.Exec(PtrGUID,2337,0,valin,valout); Modul laden: UNKNOWN_MODULE_541. ohne Debug-Infos..

Habe als Bitmap-Quelle mal den local webserver angegeben...
Es passiert auch überhaupt kein request auf die URL.

Falles es hilft!

Frank
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 08:35
Mit den Eigenheiten von D2K5 kann ich dir nicht helfen. Im Anhang der bei mir funktionerende Code.

marabu
Angehängte Dateien
Dateityp: zip wb-edit_617.zip (2,3 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 08:38


DANKE es funktioniert!

Ü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...

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: TWebbrowser mit eigenen Glyphs im Designmode

  Alt 31. Mär 2006, 09:52


Ojeee Danke nochmal für Deine Tipps...

Ich habe den Fehler gefunden...

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....

Jetzt funkt es....

Grüsse Frank
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz