webbrowser da açması gerekirken

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

webbrowser da açması gerekirken

Mesaj gönderen Lord_Ares »

merhaba , webbrowser ile bir internet sayfası açıyoruz. Açtığımız sitede linki tıklayınca explorer ile açıyor. Yeni açılan sayfayı explorer ile değilde kendi webbrowserım da
yeni sekme oluşturup nasıl açarım. Forumda onnewwindow olarak arattım fakat çok az sonuç buldum ve denediğim örnekleri sonuç alamadım.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: webbrowser da açması gerekirken

Mesaj gönderen brs »

formma PageControl,WebBrowser ekle

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  Tabsheet: TTabSheet;
  WebBrowser: TWebBrowser;
  i: integer;
begin
  if PageControl1.ActivePageIndex >= 19 then
  begin
    StatusBar1.Panels[2].Text :=
      'Yeni Sayfa Maksimum 20 Adet Oluşturabilirsiniz!';
  end
  else
  begin
    i := PageControl1.PageCount;
    Tabsheet := TTabSheet.Create(PageControl1);
    Tabsheet.Caption := 'Yeni Sayfa ' + inttostr(i + 1);
    Tabsheet.Name := 'Tabsheet' + inttostr(i + 1);
    Tabsheet.PageControl := PageControl1;
    PageControl1.ActivePage := Tabsheet;
    WebBrowser := TWebBrowser.Create(Tabsheet);
    Twincontrol(WebBrowser).Name := 'Webbrowser' + inttostr(i + 1);
    WebBrowser.Align := alclient;
    Twincontrol(WebBrowser).parent := Tabsheet;

    for i := 0 to PageControl1.ActivePage.ComponentCount - 1 do // -------->>>
    begin
      if PageControl1.ActivePage.Components[i] is TWebBrowser then
        TWebBrowser(PageControl1.ActivePage.Components[i])
          .Navigate(Form2.Edit3.Text);
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: webbrowser da açması gerekirken

Mesaj gönderen Lord_Ares »

kod için teşekkürler ama sanırım başarılı olamadım. Gözden kaçırdğımız birşeyler var.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: webbrowser da açması gerekirken

Mesaj gönderen SimaWB »

Evet, farklı sayfada açılan linkleri yakalamak için OnNewWindow2 olayını kullanmalısınız. Ve bu olay içinde yeni açılacak sayfanın hangi WebBrowser'da görüneceğini belirtmelisiniz. İsterseniz formunuzda bulunan 2. bir webbrowser'ı kullanırsınız:

Kod: Tümünü seç

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
  ppDisp :=  WebBrowser2.DefaultInterface;
end;
İsterseniz farklı bir form içinde bulunan bir webbrowser içinde görünmesini sağlarsınız:

Kod: Tümünü seç

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var 
  PopupForm: TForm1;
begin
  PopupForm := TForm1.Create(Application);
  PopupForm.Visible := True;
  PopupForm.WebBrowser1.RegisterAsBrowser;
  ppDisp := PopupForm.WebBrowser1.DefaultInterface;
end;
Ama web browser'lardaki gibi yeni bir TAB açmak isterseniz o zaman brs'nin bir kısmını paylaştığı kod gibi birşey yapmalısınız. Her yeni tab açılışını aslında PageControl'ün bir tab'ı içinde yeni bir webbrowser ile yapabilirsiniz.
Bkz. Örnek.
There's no place like 127.0.0.1
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: webbrowser da açması gerekirken

Mesaj gönderen Lord_Ares »

Bilgi için teşekkürler, evet yeni sekmede açmak istiyorum. Vermiş olduğunuz örnek linkini göremiyorum. Premium üyelik istiyor. Yinede emeğinize sağlık umarım bulurum.
Cevapla