Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 12:26   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос вопрос по webbrowser

Привет всем. Вопрос: есть webbrowser в pagecontrol, как по нажатию на ссылку в webbrowser-e создавалась новая вкладка? Спасибо.
blackstersl вне форума Ответить с цитированием
Старый 13.06.2009, 12:34   #2
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

Код:
var MyShet : TTabSheet;
****
MyShet:=TTabSheet.Create(MainFrm);
 with MyShet do
  begin
   PageControl := PageControl1;
//и можна задать название.. и еще шо нить..
  end;
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 13.06.2009, 12:36   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

да это я знаю, а как это привязать к ссылке на сайте, типа как в опере -)

Ну кто нибудь поможет?

Может я неправильно обьяснил: есть webbrowser и pagecontrol, нужно чтобы, когда webbrowser САМ ПО СИБЕ открывает IE и внём открывает нажатую нами ссылку, вместо этого нужно сделать так чтобы когда он снова "захотел" открыть в IE ссылку , от откроет её на новой вкладке. Может так немного понятние обьяснил. Заранее спасибо.

Ну вот как запретить открытие IE я кажится сделал, но страница не открывается. Что делать?
Вот весь код:

Код:
var
t:tstabsheet;
f:tframe4;
...

procedure TFrame4.webbrowser1NewWindow2(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
if webbrowser1.ReadyState <> READYSTATE_COMPLETE then
  begin
    ppDisp := nil;
    Cancel := True;
  end else
  begin
    createwebtab;
    ppdisp := webbrowser1.Application;
   cancel := false;
  end;
end;


procedure TFrame4.createwebtab;
begin
 t := tstabsheet.Create(self);
t.PageControl := form1.spagecontrol1;
t.Caption := 'Новая вкладка' + inttostr((i+1) - 3) + '    ';
f := tframe4.Create(nil);
f.Parent := t;
f.Align := alclient;

t.Show;
end;

Последний раз редактировалось Stilet; 15.06.2009 в 11:37.
blackstersl вне форума Ответить с цитированием
Старый 15.06.2009, 11:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот насколько я понял тебе нужно именно так:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    WebBrowser2: TWebBrowser;
    procedure WebBrowser2BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var p:TTabSheet;w:TWebBrowser;
begin
 Cancel:=true;
 p:=TTabSheet.Create(PageControl1);
 p.PageControl:=PageControl1;
// p.Parent:=PageControl1;
 p.Caption:='1';
 p.Show;
 w:=TWebBrowser.Create(p);
 p.InsertControl(w);
 w.Navigate(url);
 w.Align:=alClient;
 w.OnBeforeNavigate2:=WebBrowser2BeforeNavigate2;
 PageControl1.ActivePage:=p;
 w.Show;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser2.OnBeforeNavigate2:=nil;
 WebBrowser2.Navigate('www.ya.ru');
 WebBrowser2.OnBeforeNavigate2:=WebBrowser2BeforeNavigate2;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.07.2009, 00:14   #5
Shto[R]m
 
Регистрация: 15.06.2009
Сообщений: 3
По умолчанию

доброго времени суток,не хотел создавать новую тему,ибо их итак много. Собственно вопрос:
Как в webbrowser выполнить проверку,загрузился ли сайт?
был вопрос на форуме,но в среде VBA помоему,мне же надо в делфи.
по поиску ненашел ничего подходящего.
заранее спасибо за ответы

Последний раз редактировалось Shto[R]m; 17.07.2009 в 00:14. Причина: ошибочка..
Shto[R]m вне форума Ответить с цитированием
Старый 17.07.2009, 09:38   #6
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Shto[R]m Посмотреть сообщение
доброго времени суток,не хотел создавать новую тему,ибо их итак много. Собственно вопрос:
Как в webbrowser выполнить проверку,загрузился ли сайт?
был вопрос на форуме,но в среде VBA помоему,мне же надо в делфи.
по поиску ненашел ничего подходящего.
заранее спасибо за ответы

Код:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if WebBrowser1.ReadyState = READYSTATE_COMPLETE then
   if URL = 'http://www.yandex.ru/' then
   ShowMessage('страница загрузилась');
end;
Подправил

Последний раз редактировалось lexaltd; 17.07.2009 в 20:09.
lexaltd вне форума Ответить с цитированием
Старый 17.07.2009, 17:40   #7
Shto[R]m
 
Регистрация: 15.06.2009
Сообщений: 3
По умолчанию

спасибо за ответ,но мне нужно,если определенная страница загрузилась,например:
если загрузилась странциа www.yandex.ru тогда
выводи сообщение
Shto[R]m вне форума Ответить с цитированием
Старый 17.07.2009, 21:00   #8
Shto[R]m
 
Регистрация: 15.06.2009
Сообщений: 3
По умолчанию

всё,работает-большое спасибо.

ошибочка-он выводит 4 сообщения+реагирует на все страницы,а не нужную мне

Последний раз редактировалось Shto[R]m; 17.07.2009 в 22:07. Причина: ошибка
Shto[R]m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
webbrowser gromsgu Компоненты Delphi 4 19.05.2009 16:44
Вопрос по WebBrowser stos Общие вопросы Delphi 1 02.12.2008 21:51
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Webbrowser Stanislav Компоненты Delphi 4 30.11.2007 06:20