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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2009, 13:23   #1
Verst
Пользователь
 
Аватар для Verst
 
Регистрация: 22.11.2009
Сообщений: 12
По умолчанию Передать Title загружаемой страницы в Caption созданной вкладки PageControl-a

При создании вкладки, нужно чтоб caption этой вкладки принимал значение загружаемой в эту вкладку веб страницы.
При смене вкладок название вкладки меняется я сделал, но нужно что бы caption задавался в момент создания вкладки.

Создание вкладки:
Код:
function Tform1.CreateTabBrowser(sURL: string; sCaption: string):TTabSheet;
var
  ts: TTabSheet;
  WB: TWebbrowser;
  tt:String;
begin
 ts:= TTabSheet.Create(PageControl1); 
 Result:=ts;
     try
    ts.PageControl:=PageControl1 ;
    ts.Parent := PageControl1;
    ts.Caption := sCaption;
    ts.PageIndex := PageControl1.ActivePageIndex + 1;
    ts.Hint := sURL;

    WB := TWebbrowser.Create(ts);

    TControl(WB).Parent := ts;
         WB.OnNewWindow2 := WebBrowser1NewWindow2;
         WB.OnDocumentComplete := WebBrowser1DocumentComplete;
        wb.OnProgressChange:=WebBrowser1ProgressChange;

    WB.Align := alClient;
    WB.Silent := True;
    WB.Visible := True;

    PageControl1.ActivePage := ts;

    if Trim(sURL) <> '' then
    begin
      WB.Navigate(sURL);
    end;


     except
       ts.Free; 
     end;
end;
При переключении вкладок:
Код:
procedure TForm1.PageControl1Change(Sender: TObject);
var
  CurrentWB: TWebbrowser;
begin
 CurrentWB := TWebbrowser(PageControl1.ActivePage.Controls[0]);
 if PageControl1.ActivePage.Caption <> 'First Page' then
 PageControl1.ActivePage.caption:=CurrentWB.LocationName;

  ComboBox1.Text := CurrentWB.LocationURL;
end;
У тебя нет права судить человека до тех пор, пока ты не сможешь сделать то же, что он, лучше, чем он.
Verst вне форума Ответить с цитированием
Старый 22.11.2009, 14:03   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Verst, если это был вопрос, то пропиши в CreateTabBrowser такую строчку:

with PageControl1 do
ActuvePage.Caption:=CurrentWB.Locat ionName;

Если не ошибаюсь, потому что по памяти пишу, только возникает проблема, если Title будет слишком большим, как у некоторых сайтов, то и название вкладки будет таким же, поэтому нада както это тоже учитывать
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось Marsel737; 22.11.2009 в 23:50. Причина: Я программист, а не толковый словарь Ожигова
Marsel737 вне форума Ответить с цитированием
Старый 22.11.2009, 19:08   #3
Verst
Пользователь
 
Аватар для Verst
 
Регистрация: 22.11.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Marsel737 Посмотреть сообщение
Verst, если это был вопрос, то пропиши в CreateTabBrowser такую строчку:

with PageControl1 do
ActuvePage.Caption:=CurrentWB.Locat ionName;

Если не ошибаюсь, потому что по памяти пишу, только возникает проблема, если Title будет слишком большим, как у некоторых сайтов, то и название вкладки будет таким же, поэтому надО как-то это тоже учитывать
Пробывал, у вкладки название становиться пустым
У тебя нет права судить человека до тех пор, пока ты не сможешь сделать то же, что он, лучше, чем он.
Verst вне форума Ответить с цитированием
Старый 22.11.2009, 23:51   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Verst, а может тогда в таймер ту же процу засунуть, наверно када создается вкладка в WebBrowser'е ещё пусто и потому название вкладки не отображается.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 23.11.2009, 07:47   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если новая вкладка то изначально ставьте пустое имя(придумайте сами)
а потом используйте события браузера(OnDocument четот там) для обновления.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.11.2009, 11:52   #6
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Verst, правильно Пепел Феникса говорит, не нужен никакой таймер, в событие OnDocumentComplete или на OnDownLoadBegin прописать:

with PageControl1 do
ActuvePage.Caption:=CurrentWB.Locat ionName;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 24.11.2009, 01:43   #7
Verst
Пользователь
 
Аватар для Verst
 
Регистрация: 22.11.2009
Сообщений: 12
По умолчанию

Пепел Феникса, спасибо...вот тока что сам понял это))
Думал написать решение на форуме, а Вы опередили.

При создании вкладки, надо указать
Цитата:
WB := TWebbrowser.Create(ts);
WB.OnNavigateComplete2:=WebBrowser1 NavigateComplete2;
ts - новая влкадка,
ну и в WebBrowser1NavigateComplete2 написать
Цитата:
PageControl1.ActivePage.Caption := TWebbrowser(Sender).LocationName;
PS написал вдруг кому пригодиться
У тебя нет права судить человека до тех пор, пока ты не сможешь сделать то же, что он, лучше, чем он.
Verst вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Title на форме. Как можно перерисовать caption на form? Или убрать его и вместо использовать картинки Шульц Общие вопросы Delphi 37 02.10.2010 09:46
Как получить URL загружаемой картинки (используя Indy) Vlad_55 Работа с сетью в Delphi 6 23.10.2009 18:17
Вытащить строку <title> .... </title> в txt файл kzld HTML и CSS 7 01.07.2009 11:35
PageControl - сравнить вкладки. Небесный Общие вопросы Delphi 9 04.05.2009 08:43
как узнать файл загружаемой программы ? juan666777 Общие вопросы Delphi 9 18.03.2009 17:51