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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2018, 09:27   #1
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию Название вкладок у pagecontrol

Всем добрый день, столкнулся с такой проблемой при создании новой вкладки на pagecontrol нужно чтоб в название этой вкладки записывался html страницы, как сейчас во всех браузера пробывал это сделать так:

procedure TForm1.WebBrowser1DocumentComplete( ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
begin
PageControl1.ActivePage.Caption:=TW ebBrowser(PageControl1.ActivePage.C ontrols[0]).oleobject.document.title;
end;

Но в данном случае меняется только заголовок самой первой вкладки а новых нет. Заранее благодарю
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 11:54   #2
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Если вы используете один общий TWebBrowser то все правильно
Вы должны на каждой вкладке создавать TWebBrowser со своим запросом и уже название запроса присваивать названию вкладке, что то похожее в этой теме http://www.programmersforum.ru/showthread.php?t=318634
Для полного понимания покажите весь код

из той темы переделал для вас
Код:
var
ts : TTabSheet;
wb: TWebBrowser;
begin
ts := TTabSheet.Create(PageControl1);
ts.PageControl := PageControl1;
wb := TWebBrowser.Create(ts);
wb.ParentWindow:= ts.Handle;
ts.Caption := wb.oleobject.document.title;

Последний раз редактировалось Aliens_wolfs; 14.04.2018 в 12:10.
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.04.2018, 20:03   #3
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

Вот весь код
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
Panel1: TPanel;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Edit1: TEdit;
Image5: TImage;
ComboBox1: TComboBox;
Image4: TImage;
Image6: TImage;
OpenDialog1: TOpenDialog;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
WebBrowser1: TWebBrowser;
Image11: TImage;
SpeedButton1: TSpeedButton;
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Image3Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure WebBrowser1NavigateComplete2(ASende r: TObject;
const pDisp: IDispatch; const URL: OleVariant);
procedure WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
procedure WebBrowser1ProgressChange(ASender: TObject; Progress,
ProgressMax: Integer);
procedure FormCreate(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton1Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Image8Click(Sender: TObject);
procedure Image9Click(Sender: TObject);
procedure Image10Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Image11Click(Sender: TObject);
procedure WebBrowser1DocumentComplete(ASender : TObject;
const pDisp: IDispatch; const URL: OleVariant);
procedure Image12Click(Sender: TObject);



private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}






procedure TForm1.Button1Click(Sender: TObject);
var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2 then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;


procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var

a:string;

begin

if Key=#13 then

begin

WebBrowser1.Navigate(ComboBox1.Text );

a:=ComboBox1.text;

ComboBox1.Items.Add(a);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.com');
end;

procedure TForm1.Image10Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_PAGESET UP, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.Image11Click(Sender: TObject);

var
ts : TTabSheet;
wb: TWebBrowser;
TabSheet:TTabSheet;
begin

TabSheet :=TTabSheet.Create(PageControl1); //получаю указатель на новую закладку
TabSheet.Caption :=Edit1.Text; //задаю ей имя в поле ввода
TabSheet.PageControl :=PageControl1; //связываю с объектом
PageControl1.ActivePage :=TabSheet; //перехожу на созданную закладку
wb := Twebbrowser.Create(TabSheet);
wb.ParentWindow:= TabSheet.Handle;
wb.Align:= AlClient ;
wb.Navigate('http://www.google.com');
wb.Height:= 758 ;
wb.Width:= 1432;




end;

procedure TForm1.Image12Click(Sender: TObject);

var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2 then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;

procedure TForm1.Image1Click(Sender: TObject);
begin
WebBrowser1.goback;

end;




procedure TForm1.Image2Click(Sender: TObject);
begin
WebBrowser1.Refresh
end;

procedure TForm1.Image3Click(Sender: TObject);
var

Doc, Histor: Variant;

begin

Doc:= WebBrowser1.OleObject.document; //Ссылаемся на интерфейс документа;

if TVarData(Doc).VDispatch = nil then Exit; //Если документ отсутствует, тогда выходим;

Histor:=Doc.parentWindow.history; {Объект документа - объект родительского окна - объект содержащий

историю переходов Шаг вперед к предыдущему URL.};

Histor.go(1);

end;

procedure TForm1.Image4Click(Sender: TObject);
var a:string;
begin
WebBrowser1.Navigate(Edit1.Text);
a:=ComboBox1.text; // Записываем параллельно этот адрес в переменную;

ComboBox1.Items.Add(a); // Загружаем введенное в список ComboBox1;
end;

procedure TForm1.Image5Click(Sender: TObject);
var TabSheet:TTabSheet;
begin
WebBrowser1.Navigate('http://www.google.com');
end;

procedure TForm1.Image6Click(Sender: TObject);
begin

if OpenDialog1.Execute then

begin

WebBrowser1.Navigate(OpenDialog1.Fi leName);

ComboBox1.Text:=OpenDialog1.FileNam e;

end;
end;

procedure TForm1.Image7Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.Image8Click(Sender: TObject);
var
PostData, Headers: OLEvariant;
begin
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData, Headers); //Печатаем содержимое TWebBrowser;

end;

procedure TForm1.Image9Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_PRINTPR EVIEW, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2 then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;


procedure TForm1.WebBrowser1DocumentComplete( ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
begin
PageControl1.ActivePage.Caption:=TW ebBrowser(PageControl1.ActivePage.C ontrols[0]).oleobject.document.title;
end;

procedure TForm1.WebBrowser1NavigateComplete2 (ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
begin
Edit1.Text:=URL;
end;

procedure TForm1.WebBrowser1NewWindow2(ASende r: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
var newform:Tform1;
begin
ppdisp:=WebBrowser1.DefaultDispatch ;
newform:=Tform1.Create(self);
newform.Show;
ppdisp:=newform.WebBrowser1.Default Dispatch;
end;

procedure TForm1.WebBrowser1ProgressChange(AS ender: TObject; Progress,
ProgressMax: Integer);
begin
progressbar1.max:=progressMax;
progressbar1.Position:=progress;

end;





end.
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 20:04   #4
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

И еще вопрос как можно сделать чтоб кнопки назад вперед и перезагрузки работали на активной вкладке
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 21:31   #5
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Выделите свой код и нажмите # на панели где сообщение пишите, а то неудобно ваш код смотреть
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.04.2018, 21:33   #6
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ProgressBar1: TProgressBar;
    Panel1: TPanel;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Edit1: TEdit;
    Image5: TImage;
    ComboBox1: TComboBox;
    Image4: TImage;
    Image6: TImage;
    OpenDialog1: TOpenDialog;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    WebBrowser1: TWebBrowser;
    Image11: TImage;
    SpeedButton1: TSpeedButton;
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image5Click(Sender: TObject);
    procedure WebBrowser1NavigateComplete2(ASender: TObject;
      const pDisp: IDispatch; const URL: OleVariant);
    procedure WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    procedure WebBrowser1ProgressChange(ASender: TObject; Progress,
      ProgressMax: Integer);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
    procedure Image7Click(Sender: TObject);
    procedure Image8Click(Sender: TObject);
    procedure Image9Click(Sender: TObject);
    procedure Image10Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Image11Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(ASender: TObject;
      const pDisp: IDispatch; const URL: OleVariant);
    procedure Image12Click(Sender: TObject);



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}






procedure TForm1.Button1Click(Sender: TObject);
var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2   then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;


procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var

a:string;

begin

if Key=#13 then

begin

WebBrowser1.Navigate(ComboBox1.Text);

a:=ComboBox1.text;

ComboBox1.Items.Add(a);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.com');
end;

procedure TForm1.Image10Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.Image11Click(Sender: TObject);

var
ts : TTabSheet;
wb: TWebBrowser;
TabSheet:TTabSheet;
begin

TabSheet :=TTabSheet.Create(PageControl1);   //получаю указатель на новую закладку
TabSheet.Caption := webbrowser1.oleobject.document.title;
TabSheet.PageControl :=PageControl1; //связываю с объектом
PageControl1.ActivePage :=TabSheet; //перехожу на созданную закладку
wb := Twebbrowser.Create(TabSheet);
wb.ParentWindow:= TabSheet.Handle;
wb.Align:= AlClient ;
wb.Navigate('http://www.google.com');
wb.Height:= 758 ;
wb.Width:= 1432;




end;

procedure TForm1.Image12Click(Sender: TObject);

var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2   then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;

procedure TForm1.Image1Click(Sender: TObject);
begin
WebBrowser1.goback;

end;




procedure TForm1.Image2Click(Sender: TObject);
begin
WebBrowser1.Refresh
end;

procedure TForm1.Image3Click(Sender: TObject);
var

Doc, Histor: Variant;

begin

Doc:= WebBrowser1.OleObject.document;  //Ссылаемся на интерфейс документа;

if TVarData(Doc).VDispatch = nil then Exit;  //Если документ отсутствует, тогда выходим;

Histor:=Doc.parentWindow.history;  {Объект документа - объект родительского окна - объект содержащий

историю переходов Шаг вперед к предыдущему URL.};

Histor.go(1);

end;

procedure TForm1.Image4Click(Sender: TObject);
var a:string;
begin
WebBrowser1.Navigate(Edit1.Text);
a:=ComboBox1.text;  // Записываем параллельно этот адрес в переменную;

ComboBox1.Items.Add(a);  // Загружаем введенное в список  ComboBox1;
end;

procedure TForm1.Image5Click(Sender: TObject);
var TabSheet:TTabSheet;
begin
WebBrowser1.Navigate('http://www.google.com');
end;

procedure TForm1.Image6Click(Sender: TObject);
begin

if OpenDialog1.Execute then

begin

WebBrowser1.Navigate(OpenDialog1.FileName);

ComboBox1.Text:=OpenDialog1.FileName;

end;
end;

procedure TForm1.Image7Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.Image8Click(Sender: TObject);
var
PostData, Headers: OLEvariant;
begin
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData, Headers);  //Печатаем содержимое TWebBrowser;

end;

procedure TForm1.Image9Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

var TabSheet:TTabSheet;
begin
if pagecontrol1.PageCount>=2   then
pagecontrol1.ActivePage.Free;
PageControl1.ActivePage :=TabSheet;

end;


procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
begin
PageControl1.ActivePage.Caption:=TWebBrowser(PageControl1.ActivePage.Controls[0]).oleobject.document.title;
end;

procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
begin
Edit1.Text:=URL;
end;

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
  var newform:Tform1;
begin
ppdisp:=WebBrowser1.DefaultDispatch;
newform:=Tform1.Create(self);
newform.Show;
ppdisp:=newform.WebBrowser1.DefaultDispatch;
end;

procedure TForm1.WebBrowser1ProgressChange(ASender: TObject; Progress,
  ProgressMax: Integer);
begin
progressbar1.max:=progressMax;
progressbar1.Position:=progress;

end;





end.
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 21:33   #7
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

извиняюсь за неудобства
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 21:35   #8
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

и не знаю мучаюсь уже довольно долго насчет кнопок а именно вперед назад перезагрузка и домой тоесть они работают только на самой первой вкладке а не на активной
LordProche вне форума Ответить с цитированием
Старый 14.04.2018, 22:27   #9
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Кое что начал делать из вашего кода

Вот накидал правда есть иногда ошибка с переходом вперед, для примера посмотрите что к чему
Вложения
Тип файла: rar WebBrowser2.rar (99.8 Кб, 12 просмотров)

Последний раз редактировалось Aliens_wolfs; 15.04.2018 в 00:49.
Aliens_wolfs вне форума Ответить с цитированием
Старый 15.04.2018, 07:26   #10
LordProche
Пользователь
 
Регистрация: 01.04.2018
Сообщений: 18
По умолчанию

Огромное спасибо, даже не знаю как благодарить ошибка с кнопкой вперед было потому-что вы там написали Wb_GoBack а не GoForward Огромное спасибо. только у меня почему-то ругается на эту строчку WB_GoBack(WB); странно конкретно на нижнее подчеркивание наверное
LordProche вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PageControl и динамическое содержимое вкладок из DLL prizrak1390 Общие вопросы Delphi 8 09.06.2015 10:10
Не могу убрать обводку с вкладок PageControl bakanaev Общие вопросы Delphi 2 09.07.2013 08:51
PageControl. в процессе проектировки формы создать несколько вкладок. GN_ Помощь студентам 7 15.11.2011 20:56
Сохранение текста с вкладок PageControl OPF_Nik Общие вопросы Delphi 2 12.02.2010 12:35
TreeView и PageControl (переключение вкладок по дереву) Nevy Общие вопросы C/C++ 5 17.08.2008 19:17