Announcement

Collapse
No announcement yet.

HTML-String in Browser-Komponente anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML-String in Browser-Komponente anzeigen

    Hallo

    Ich suche eine Möglichkeit einen String, der HTML-Befehle enthält an die TWebbrowser-Komponente (oder eine andere Komponente) übergeben zu können, so dass diese "formattiert" angezeigt wird. Bisher schreibe ich die Daten in ein File und übergebe dieses dann der Navigate-Methode.

    Danke für jeden Input
    Roland Heini

  • #2
    Dafür gibt es schon mehr Komponenten, welche HTML-Formatierte Ausgabe ermöglichen:

    - http://www.tmssoftware.com/ -> THTML-Komponenten wie Listbox, Label, ...

    - http://www.eldos.org/elpack/ -> HTML-Enabled komponenten wie ListBox, Label, Hint, ComboBox, .... Fast alle davon sind auch Unicode enabled (Auch unter Win9x/ME <b>ohne</b> jedliche Installation). Es ist auch schon angekündigt diese Komponentensammlung mit Verfügbarkeit von Delphi for Net ebenfalls für .NET zur Verfügung zu stellen.

    Damit muß man sich nicht mit der TWebbrowser-Komponenten herumschlagen, um nur vielleicht einen fetten und/oder formatierten Text darzustellen

    Comment


    • #3
      Hallo,

      &gt;..einen String, der HTML-Befehle enthält an die TWebbrowser-Komponente ...

      Das folgende Beispiel demonstriert einen Weg: Der in der TMemo-Instanz enthaltene Text wird mit Hilfe von <b>TStreamAdapter</b> als IStream-Interfacezeiger bereitgestellt. Da sich hinter IStream ein von COM vordefiniertes Interface verbirgt, kann der WebBrowser den Stream-Inhalt über sein <b>IPersistStreamInit</b>-Interface abholen, indem die Methode <b>Load</b> aufgerufen wird:
      <pre>
      uses
      MSHTML, ActiveX;

      procedure TForm1.Button1Click(Sender: TObject);
      var
      aPSI : IPersistStreamInit;
      aSS : TStringStream;
      begin
      // leere Webseite anfordern
      WebBrowser1.Navigate('about:blank');
      while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
      Application.ProcessMessages;
      // eigenen Text anzeigen
      aSS := TStringStream.Create(Memo1.Lines.Text);
      try
      aSS.Seek(0, soFromBeginning);
      aPSI := WebBrowser1.Document as IPersistStreamInit;
      aPSI.Load(TStreamAdapter.Create(aSS))
      finally
      aSS.Free
      end
      end;
      </pre&gt

      Comment


      • #4
        Danke, habe ich auch schon probiert (das Beispiel haben sie ja schon mal ins Forum gestellt). Leider wird die Anzeige dabei <b>nicht formattiert</b> (z.B. <b> o.ä.). Mache ich was falsch?

        Roland Hein

        Comment

        Working...
        X