Announcement

Collapse
No announcement yet.

HTML Infofenster in einer Delphi Anwendung

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

  • HTML Infofenster in einer Delphi Anwendung

    Hallo meine lieben Liebende,

    Kann mir mal jemand erklären, wie ich eine simple HtmL Darstellung in
    einem Delphi Formular erstelle. Ich möchte wie in Outlook`s Startseite eine Übersicht erstellen, die einem den Weg ebnet, und dennoch so variabel bleiben, das ich den HTML-Code jederzeit austauschen kann.

    Meine Frage, Geht dies evtl. mit der Fastnet Komponente HtmL; brauch ich evtl. eine Fremdkomponente (wenn ja, Wo?); und wie realisiere ich dies am besten.

    Schon mal vielen Dank,

    Gruß, Tom

  • #2
    Hallo,

    wenn <b>TWebBrowser</b> (Delphi 5) zur Verfügung steht, kann man direkt über den Arbeitsspeicher eigene Seiten im eingebetteten IE-Fenster anzeigen. Das folgende Beispiel demonstriert dies:
    <pre>
    { ************************************************** *******************
    Autor : Andreas Kosch
    Compiler : Delphi 5 UpdatePack#1
    Betriebssystem : Windows 2000
    Datum : 12.11.2000
    Beschreibung : Experimente mit TWebBrowser
    ************************************************** ******************** }

    unit WebBrowserFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, OleCtrls, SHDocVw, ImgList, ComCtrls, ToolWin;

    type
    TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Memo1: TMemo;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButtonLinks: TToolButton;
    ToolButtonHTML: TToolButton;
    ImageList1: TImageList;
    EditURL: TEdit;
    ToolButtonNavigate: TToolButton;
    ToolButtonHTML2: TToolButton;
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButtonLinksClick(Sender: TObject);
    procedure ToolButtonHTMLClick(Sender: TObject);
    procedure ToolButtonNavigateClick(Sender: TObject);
    procedure ToolButtonHTML2Click(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    uses ActiveX, MSHTML_TLB;

    { TWebBrowser benötigt einige Zeit, um das Document-Objekt zu
    initialisieren. }

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    WebBrowser1.Navigate('about:blank');
    end;

    { Aufgabe 1: Alle Links der aufgerufenen Seite ermitteln }

    procedure TForm1.ToolButtonLinksClick(Sender: TObject);
    var
    aHTMLDoc : IHTMLDocument2;
    iCount : Integer;
    aHTMLLink : IHTMLElement;
    begin
    if not VarIsEmpty(WebBrowser1.Document) then
    begin
    aHTMLDoc := WebBrowser1.Document as IHTMlDocument2;
    for iCount := 0 to aHTMLDoc.Links.Length - 1 do
    begin
    aHTMLLink := aHTMLDoc.Links.Item(iCount, 0) as IHTMLElement;
    Memo1.Lines.Append(aHTMLLink.ToString);
    end;
    end;
    end;

    { Aufgabe 2: HTML-Text im Programm generieren und einfügen }

    procedure TForm1.ToolButtonHTMLClick(Sender: TObject);
    var
    vDocument,
    vMIMEType,
    vHTML : OleVariant;
    begin
    if not VarIsEmpty(WebBrowser1.Document) then
    begin
    vDocument := OleVariant(WebBrowser1.Document).Script.Document;
    vMIMEType := 'text/html';
    vHTML := '< HTML >< HEAD >< TITLE >Test< /TITLE></ HEAD>< BODY>' +
    '< b>Delphi 5 steuert TWebBrowser!< /b>< p>' +
    'Delphi 5 und TWebBrowser greifen auf Script.Document zu.' +
    '</ BODY></HTML>';
    vDocument.Open(vMIMEType);
    vDocument.Clear;
    vDocument.Writeln(vHTML);
    vDocument.Close;
    end;
    end;

    { Aufgabe 2 in einer Abwandlung }

    procedure TForm1.ToolButtonHTML2Click(Sender: TObject);
    begin
    if not VarIsEmpty(WebBrowser1.Document) then
    OleVariant(WebBrowser1.Document).Script.Document.B ody.InnerHTML :=
    '< b>Delphi 5 und TWebBrowser greifen auf Scriptdocument.Body.InnerHTML zu.< /b>';
    end;

    procedure TForm1.ToolButtonNavigateClick(Sender: TObject);
    begin
    WebBrowser1.Navigate(EditURL.Text);
    end;

    procedure TForm1.ToolButton1Click(Sender: TObject);
    begin
    Close;
    end;

    initialization
    OleInitialize(nil);

    finalization
    OleUninitialize;

    end.
    </pre&gt

    Comment

    Working...
    X