AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi HTML in TWebBrowser injizieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML in TWebBrowser injizieren

Ein Thema von Die Muhkuh · begonnen am 28. Mai 2007 · letzter Beitrag vom 28. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 13:24
Hi,

ich hab in einer String-Variable eine komplette, kleine HTML-Seite, die ich gerne in den TWebBrowser injizieren würde, damit dieser die HTML-Seite korrekt darstellt.

Gibt es da eine Möglichkeit dafür?

mfG,

Manuel
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 13:37
Klar, Navigate auf about:deinhtmlstring

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 13:41
Supi! Vielen Dank
  Mit Zitat antworten Zitat
marabu

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

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 13:59
Hallo ihr zwei,

das funktioniert nur solange, wie das übergebene markup nicht das size limit (1.024) für URLs sprengt. Sicherer ist es das Dokument direkt zu schreiben. Es gibt da viele Wege, aber der vom Quellcode her primitivste ist sicher der hier:

Delphi-Quellcode:
procedure LoadDocumentFromStrings(doc: OleVariant; s: TStrings; url: string = 'about:blank');
var
  i: Integer;
begin
  doc.Open(url, '_blank');
  doc.Clear;
  for i := 0 to Pred(s.Count) do
    doc.WriteLn(s[i]);
  doc.Close;
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 14:20
Hi marabu,

Deine Version werde ich später auch mal testen, da ich denke, dass ich über das size limit kommen werde.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 15:10
Hi marabu,

ich hab es eben getestet, leider funktioniert es nicht:

Delphi-Quellcode:
procedure TfrmMain.Vorschau1Click(Sender: TObject);
var
  frmPreview: TfrmPreview;
  tmp: String;
begin
  frmPreview := TfrmPreview.Create(Application);

  tmp := '<html><head></head><body>';
  tmp := tmp + TConverter.ConvertBBtoHTML(reEditor.Text);
  tmp := tmp + '</body></html>';

  try
    frmPreview.wbBrowser.OleObject.Open('about:blank', '_blank');
    frmPreview.wbBrowser.OleObject.Clear;
    frmPreview.wbBrowser.OleObject.WriteLn(tmp);
    frmPreview.wbBrowser.OleObject.Close;
    frmPreview.ShowModal;
  finally
    frmPreview.Free;
  end;
end;
Fehlermeldung:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt1.exe ist eine Exception der Klasse EOleError mit der Meldung 'Die Methode 'Open' wird vom Automatisierungsobjekt nicht unterstützt' aufgetreten.
---------------------------
Anhalten  Fortsetzen  Hilfe  
---------------------------
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#7

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 15:33
Erstelle doch eine Seite ohne Inhalt mit about: und ändere dann die Eigenschaft innerText des Body Elements.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 15:40
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt1.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0046D077 in Modul 'Projekt1.exe'. Lesen von Adresse 00000000' aufgetreten.
---------------------------
Anhalten  Fortsetzen  Hilfe  
---------------------------
Delphi-Quellcode:
procedure TfrmMain.Vorschau1Click(Sender: TObject);
var
  frmPreview: TfrmPreview;
  tmp: String;
begin
  frmPreview := TfrmPreview.Create(Application);

  tmp := tmp + TConverter.ConvertBBtoHTML(reEditor.Text);

  try
    frmPreview.wbBrowser.Navigate('about:<html><head></head><body></body></html>');
    frmPreview.wbBrowser.OleObject.Document.Body.InnerHtml := tmp;
    frmPreview.ShowModal;
  finally
    frmPreview.Free;
  end;
end;
Das klappt leider auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 15:45
Hi nochmal,

ich mach es jetzt anders: Ich speichere die Datei ab und navigiere per .Navigate auf die Datei.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: HTML in TWebBrowser injizieren

  Alt 28. Mai 2007, 16:06
Hallo Muhkuh

Unter diesem Thread findest du weitere Möglichkeiten, ohne dabei den Code von einer Datei yu laden.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:20 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