Announcement

Collapse
No announcement yet.

TWebBrowser

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

  • TWebBrowser

    Hallöle,<br>
    <br>
    ich habe 2 Fragen bezüglich des TWebBrowser.<br>
    1. Wie kann ich die Darstellung verändern? Das TWebBrowser sieht ja immer so aus, als ob es in die Form eingelassen wurde, durch den unterschiedlich "beleuchteten" Rand. Wie kann ich das nun flach, also praktisch wie ein Image zum Beispiel, darstellen lassen? Gibt es da eine Möglichkeit?<br>
    2.Ich habe 2 Forms. In beiden befinden sich jeweils ein TWebBrowser. Wie kann ich in dem TWebBrowser in Form2 die verlinkte Seite anzeigen lassen, wenn ich bei dem TWebBrowser in Form1 einen Link drücke? Ich wäre überglücklich, wenn das klappen würde.<br>
    <br>
    Ich hoffe auf schnelle Antwort... :=)<br>
    Stephan

  • #2
    Hallo Stephan,<br>zu Frage 1 weiß ich keine Antwort<br>Zu Frage 2 hilft Dir evt. der folgende Source
    <pre>
    unit Unit1;

    interface

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

    type
    TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    WebBrowser2: TWebBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1BeforeNavigate2(Sender: TObject;
    const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
    Headers: OleVariant; var Cancel: WordBool);
    procedure WebBrowser2NavigateComplete2(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
    private
    { Private-Deklarationen }
    FWebBrowser2Navigating : Boolean;
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    WebBrowser1.Navigate('http:\\www.entwickler.com');
    end;

    procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
    const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
    Headers: OleVariant; var Cancel: WordBool);
    var
    aUrl : WideString;
    aFlags : OleVariant;
    aTargetFrameName : OleVariant;
    aPostData : OleVariant;
    aHeaders : OleVariant;
    begin
    aUrl:=Url;
    aFlags:=Flags;
    aTargetFrameName:=TargetFrameName;
    aPostData:=PostData;
    aHeaders:=Headers;
    If Not FWebBrowser2Navigating then
    begin
    WebBrowser2.Navigate(aUrl,aFlags, aTargetFrameName, aPostData,aHeaders);
    FWebBrowser2Navigating:=True;
    end;
    Cancel:=True;
    end;

    procedure TForm1.WebBrowser2NavigateComplete2(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
    begin
    FWebBrowser2Navigating:=False;
    end;

    end.
    </pre&gt

    Comment


    • #3
      Ja, Danke,<br>
      <br>
      nun ist das ja so, dass jede Seite, die in WebBrowser1 geladen werden soll, an den WebBrowser2 geht. Um das zu vermeiden habe ich an das TargetFrameName gedacht. Wenn nun in der HTMl (in WebBrowser1) beim Target eines Links zum Beispiel WebBrowser2 steht (es handelt sich nur um lokale html-files, die ich auch selber schreibe), könnte man doch im BeforeNavigate2 des WebBrowser1 eine If-Klausel einbauen um dies zu überprüfen. Doch kann ich dann ja nicht an den WebBrowser2.Navigate TargetFrameName='WebBrowser2'; übergeben, oder doch? Der Frame existiert ja nicht. Gibt es da eine Art 'default' oder ist dieser Parameter 'lehr'?<br>
      <br&gt

      Comment

      Working...
      X