Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уничтожение вкладок TabSheet. 
:(
    Опции темы
Borland_Delphi_6
  Дата 30.3.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Пишу веб-браузер для своего сайта. Почти написал поддержку вкладок, создаю их таким вот образом:

Код
procedure TS0ftNavigator.CreateTab(TabUrl:String; Title:String = 'EDb$tf%fdg68][|');
var
TabSheet:TTabSheet;
Url:String;
begin
TabSheet:=TTabSheet.Create(Self);
TabSheet.PageControl:=PageControl1;
if Title = 'EDb$tf%fdg68][|' then
TabSheet.Caption:='[Blank Page]' else TabSheet.Caption:=Title; 
PageControl1.ActivePage:=TabSheet;
WebBrowser1:=TWebBrowser.Create(self);
TOleControl(WebBrowser1).Parent := PageControl1.ActivePage;
WebBrowser1.OnBeforeNavigate2:=Wb.OnBeforeNavigate2;
WebBrowser1.OnDocumentComplete:=WB.OnDocumentComplete;
WebBrowser1.OnDownloadBegin:=Wb.OnDownloadBegin;
WebBrowser1.OnProgressChange:=Wb.OnProgressChange;
WebBrowser1.OnStatusTextChange:=Wb.OnStatusTextChange;
WebBrowser1.OnTitleChange:=WB.OnTitleChange;
WebBrowser1.Align:=alClient;
if TabUrl <> '' then WebBrowser1.Navigate(TabURL);
end;


Вопрос: как правильно закрыть вкладку? Пробовал несколько способов - AV. smile

Это сообщение отредактировал(а) Girder - 30.3.2005, 16:10


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Vit
Дата 30.3.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



А как ты ищешь какой TWebBrowser использовать? Он же у тебя на каждой странице...

ИМХО надо как минимум иметь доступ именно к нужному TWebBrowser


Код

procedure TS0ftNavigator.CreateTab(TabUrl:String; Title:String = 'EDb$tf%fdg68][|');
var
TabSheet:TTabSheet;
Url:String;
begin
TabSheet:=TTabSheet.Create(Self);
TabSheet.PageControl:=PageControl1;
if Title = 'EDb$tf%fdg68][|' then
TabSheet.Caption:='[Blank Page]' else TabSheet.Caption:=Title; 
PageControl1.ActivePage:=TabSheet;
WebBrowser1:=TWebBrowser.Create(self);
TOleControl(WebBrowser1).Parent := PageControl1.ActivePage;
TabSheet.tag:=integer(WebBrowser1);
WebBrowser1.OnBeforeNavigate2:=Wb.OnBeforeNavigate2;
WebBrowser1.OnDocumentComplete:=WB.OnDocumentComplete;
WebBrowser1.OnDownloadBegin:=Wb.OnDownloadBegin;
WebBrowser1.OnProgressChange:=Wb.OnProgressChange;
WebBrowser1.OnStatusTextChange:=Wb.OnStatusTextChange;
WebBrowser1.OnTitleChange:=WB.OnTitleChange;
WebBrowser1.Align:=alClient;
if TabUrl <> '' then WebBrowser1.Navigate(TabURL);
end;


Теперь при разрушении:

Код

TWebBrowser(PageControl1.ActivePage.tag).free;
PageControl1.ActivePage.free;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
rsm
Дата 30.3.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Так пробовал?
Код

frmMain.RemoveControl(frmMain.FindChildControl('Your_Control_Name'));

PM MAIL   Вверх
Borland_Delphi_6
Дата 31.3.2005, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Самое интересное, что доступ к браузеру идет очень легко, просто WebBrowser1. Причем в зависимости от вкладки все нормально передается нужному браузеру... smile

Ну а примеры посмотрю.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Vit
Дата 31.3.2005, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Borland_Delphi_6 @ 30.3.2005, 15:44)
Самое интересное, что доступ к браузеру идет очень легко, просто WebBrowser1. Причем в зависимости от вкладки все нормально передается нужному браузеру... 



Чего-то ты там перемудрил... События то происходят на нужном браузере а всё остальное... сомнительно... Никогда так нельзя делать... Даже если всё кажется что работает - нарвёшься на AV который будет сыпаться часто и густо и непонятно откуда...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Borland_Delphi_6
Дата 31.3.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Блин, может я конечно чего-то путаю... Хотя скорее всего ты прав smile Если хочешь, могу код выслать, правда там все еще страшнее будет smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Borland_Delphi_6
Дата 31.3.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Оба варианта в AV smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Vit
Дата 31.3.2005, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Borland_Delphi_6 @ 31.3.2005, 07:05)
Оба варианта в AV 



Переменную WebBrowser1 вообще убей... Вместо неё везде используй:

TWebBrowser(PageControl1.ActivePage.tag).
Добавлено @ 23:40
Если не получится, я тебе код простейшего многооконного браузера напишу...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Borland_Delphi_6
Дата 1.4.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Интересная ситуация наблюдается: код Vit'a в принципе работает, но очень глючно. Допустим: при запуске браузера создается одна вкладка. Мы вручную создаем еще одну. Переходим на первую вкладку и нажмимаем на кнопку "Закрыть". Закрывает. В остальных случаях - AV smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Vit
Дата 1.4.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Ответил здесь: http://forum.vingrad.ru/index.php?showtopic=47103

Обрати внимание что в примере НЕТ глобальных переменных для TWebBrowser и т.п.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Borland_Delphi_6
Дата 4.4.2005, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Ну что сказать - плюсик! И большие спасибо, буду изучать! smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1374 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.