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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2015, 18:09   #1
prostoshift1
Пользователь
 
Регистрация: 14.09.2014
Сообщений: 13
Сообщение прошу помощи, проект браузер Delphi .

Я создал браузер клиент .
Клиент должен работать как клиент , думаю это понятно всем .
Все функционалы работают все почти добавлено ,проблема одна.
Проблема моя заключается в том что когда я запускаю exe у меня все работает как надо , я нажимаю определенный ссылки по команде
// WebBrowser1.Navigate('get2.adobe.co m/ru/flashplayer/'); повторюсь все работает "как надо"! , вот собственно моя проблема , после нажатия этой страницы я лазию к примеру по этой ссылке и у меня она ссылка в exe открывается не в моём браузере клиенте а в любом другом браузере по умолчанию. Вопрос как сделать так чтобы в коде и в браузере все ссылки открывались именно только в моё клиенте .
Код:

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Menus, Vcl.StdCtrls,
  Vcl.OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    MainMenu1: TMainMenu;
    N11: TMenuItem;
    N21: TMenuItem;
    N31: TMenuItem;
    N41: TMenuItem;
    N51: TMenuItem;
    N61: TMenuItem;
    N71: TMenuItem;
    wwwdarkorbitcom1: TMenuItem;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    WebBrowser1: TWebBrowser;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    procedure wwwdarkorbitcom1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;ppDisp: IDispatch;



implementation

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);
begin
WebBrowser1.Navigate('get2.adobe.com/ru/flashplayer/');
end;

procedure TForm1.N2Click(Sender: TObject);
begin

end;

procedure TForm1.N3Click(Sender: TObject);
begin

end;

procedure TForm1.wwwdarkorbitcom1Click(Sender: TObject);
begin
WebBrowser1.Navigate(');
end;

end.
что нужна сделать чтобы все именно открывалось в моем exe проекте? .
Прошу прощение , больше не повторится , очень хочу помощи и незнал как правильно с реагировать на данном этапе , еще раз прошу прощение у администраций за конфуз.
прошу помощи проекту браузер Delphi

Последний раз редактировалось Аватар; 16.04.2015 в 18:55.
prostoshift1 вне форума Ответить с цитированием
Старый 16.04.2015, 18:13   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

OnNewwindow2 событие смотрите.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.04.2015, 18:15   #3
prostoshift1
Пользователь
 
Регистрация: 14.09.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
OnNewwindow2 событие смотрите.
поконкретней? я зеленый новичок еще, если можно с подсказками(
prostoshift1 вне форума Ответить с цитированием
Старый 16.04.2015, 18:23   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию


И документация где-то тут https://msdn.microsoft.com/en-us/library/9bhswd2t.aspx
Цитата:
Parameters
ppDisp — A pointer to an interface pointer that, optionally, receives the IDispatch interface pointer of a new WebBrowser or Internet Explorer object.
Cancel — A pointer to a cancel flag. An application can set this parameter to nonzero to cancel the navigation operation, or to zero to allow it to proceed.
Как-то так вроде, чтобы в том же веббраузере открывать:
Код:
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
   ppDisp := WebBrowser1.DefaultDispatch;
end;
Ну и соответственно есть вариант вместо того же создавать новый вебраузер/форму с веббраузером и в ppDisp указывать его.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.04.2015, 18:46   #5
prostoshift1
Пользователь
 
Регистрация: 14.09.2014
Сообщений: 13
Сообщение

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Menus, Vcl.StdCtrls,
  Vcl.OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    MainMenu1: TMainMenu;
    N11: TMenuItem;
    N21: TMenuItem;
    N31: TMenuItem;
    N41: TMenuItem;
    N51: TMenuItem;
    N61: TMenuItem;
    N71: TMenuItem;
    wwwdarkorbitcom1: TMenuItem;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    WebBrowser1: TWebBrowser;
    procedure wwwdarkorbitcom1Click(Sender: TObject);
    procedure WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
ppDisp := WebBrowser1.DefaultDispatch;
end;

procedure TForm1.wwwdarkorbitcom1Click(Sender: TObject);
begin
WebBrowser1.Navigate('');
end;

end.
После кода ничего не помогло( .
Возможно у меня весит компонент с верх браузера PageControl1 , может из за этого?. Код отправил. Хочу заметить что после вашей подсказки код изменился автоматически.

Последний раз редактировалось prostoshift1; 16.04.2015 в 19:13.
prostoshift1 вне форума Ответить с цитированием
Старый 16.04.2015, 19:23   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

хм, наверно таки нельзя в том же самом веббраузере, надо новый создавать, тогда работает.

Там еще есть вроде NewWindow3 событие, в котором есть URL (и соответственно можно просто Navigate на него), но его нет в Дельфийской обертке, так что я не знаю как до него достучаться.

Я бы лучше использовал какой-нибудь TChromium вместо этого веббраузера, там должно быть проще.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи по delphi, гарантированно заплачу. Fisgard Фриланс 4 16.05.2014 22:39
Прошу вашей помощи. Работа с массивами и типизированными файлами (Delphi) dandikon Помощь студентам 2 02.11.2013 15:17
Прошу помощи! hijke Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2009 18:04
Как при помощи сырых-COM использовать компонет браузер IE AlexDX Общие вопросы C/C++ 0 04.02.2009 20:24
Delphi прошу помощи у профессионалов Тёмыч Помощь студентам 5 12.05.2008 23:48