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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Браузер, проблема с новой вкладкой 
:(
    Опции темы
AlanFree
Дата 10.1.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  Tab:=TTabSheet.create(PageControl1);
  Tab.PageControl:=PageControl1;
  Tab.Caption:='New';
  PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
  wb:=twebbrowser.create(self);
  wb.ParentWindow:=Tab.Handle;
  ppDisp:=wb.DefaultDispatch;
end;


Вот код который я использую, но на новой вклаке webbrowser не растянут на всю вкладку как на первой, и на второй вкладке нету CoolBar  и ToolBar как на первой, как их поместить на новую вкладку?
PM MAIL   Вверх
aktuba
Дата 10.1.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Код

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  Tab:=TTabSheet.create(PageControl1);
  Tab.PageControl:=PageControl1;
  Tab.Caption:='New';
  PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
  wb:=twebbrowser.create(self);
  wb.ParentWindow:=Tab.Handle;
  wb.Align := alClient;
  CoolBar.Parent := Tab;
  ToolBar.Parent := Tab;
  ppDisp:=wb.DefaultDispatch;
end;


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


--------------------
user posted image
PM MAIL WWW Skype   Вверх
MetalFan
Дата 10.1.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



parent поменяй


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
AlanFree
Дата 10.1.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(aktuba @  10.1.2007,  14:40 Найти цитируемый пост)
код Pascal/Delphi1:2:3:4:5:6:7:8:9:10:11:12:13:14:procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;  var ppDisp: IDispatch; var Cancel: WordBool);begin  Tab:=TTabSheet.create(PageControl1);  Tab.PageControl:=PageControl1;  Tab.Caption:='New';  PageControl1.ActivePageIndex:=PageControl1.PageCount-1;  wb:=twebbrowser.create(self);  wb.ParentWindow:=Tab.Handle;  wb.Align := alClient;  CoolBar.Parent := Tab;  ToolBar.Parent := Tab;  ppDisp:=wb.DefaultDispatch;end;highlightSyntax('delphi_zMzOWJ','delphi');highlightSyntax('delphi_zMzOWJ','delphi');Только я бы так не делал... Я бы использовал TabControl, а все данные хранил бы в TList и загружал по мере необходимости...


wb не разворачивается на всю закладку smile , на рервой закладке у меня еще ProgressBar и StatusBar на вторую закладку я их пермещаю
Код

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  Tab:=TTabSheet.create(self);
  Tab.PageControl:=PageControl1;
  Tab.Align:=alClient;
  Tab.Caption:='New';
  PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
  wb:=TWebBrowser.Create(self);
  wb.ParentWindow:=Tab.Handle;
  wb.Align:=alClient;
  ppDisp:=wb.DefaultDispatch;
  wb.Width:=Tab.Width;
  wb.Height:=Tab.Height;
  wb.OnProgressChange := WebBrowser1ProgressChange;
  wb.OnStatusTextChange := WebBrowser1StatusTextChange;
  prb:=TProgressBar.create(self);
  prb.Parent:=Tab;
  prb.Align:=alClient;
  stb:=TStatusBar.create(self);
  stb.Parent:=Tab;
  stb.Align:=alClient;
end;


но в итоге wb не разворачивается на всю закладку, и ProgressBar находится вверху и не растянутый, и еще как мне сделать что бы на каждой вкладке в этих новых ProgressBar и StatusBar отображлся статус именно той закладке на которой они находятся!???

PM MAIL   Вверх
AlanFree
Дата 11.1.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



aktuba,  спасибо, хотел поставить Вам плюсик, но у меня меньше чем 100 постов, и я не могу ставить плюстки smile
PM MAIL   Вверх
aktuba
Дата 11.1.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



=))) да ничего... я тебе лишь направление дал, развивай сам. но учти, идешь не в ту сторону. после 10-15 закладок программа в памяти будет места занимать больше чем вся система.

Лучше создай список (TList) и в нем храни данные, вместо TPageControl используй TTabControl и подгружай данные автоматически при переключении закладок. Так дополнительные расходы памяти будут намного меньше, но и это не самый лучший вариант...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Ibragim
Дата 12.1.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(aktuba @  11.1.2007,  16:53 Найти цитируемый пост)
 я тебе лишь направление дал, развивай сам. но учти, идешь не в ту сторону.


Не согласен. Так тоже думал, качал через TIdHttp, потом показывал. Оказался в ситуации когда с браузерами гораздо удобнее (браузер сам рисунки подгружает, скрипты выполняет). Провел експеримент. Пока сам браузер как объект не ОТОБРАЖАЕТСЯ на экране (Browser.Hide), все нормально. 

Пример. Celeron 1.7 / 256 ОЗУ. 400 браузеров все нормально работает, выделение памяти на процесс 40 Kb , общее 321 Kb. Показываю ОДИН браузер в каждый момент времени. (Цикл с проверкой Browser.ReadyState)
PM MAIL   Вверх
aktuba
Дата 12.1.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Ibragim, ты не понял. Про браузер я ничего не говорил. Я говорил про постоянно создаваемые закладки, постоянно создаваемый новый браузер и т.д. Т.е. при 10 открытых закладках у него в памяти 10 WebBrowser, 10 TCoolbar, 20 TToolBar, 100 TToolButton и т.д. Это неправильно, когда все это можно оставить в единственном экземпляре и обрабатывать динамически.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Ibragim
Дата 12.1.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ыыыы, тада согласен. Создавать и удалять нельзя ни в коем разе. Мало того что это долго (в приведенной конфигурации 400 браузеров создаются секунд пять, но хоть один раз smile ), так еще и динамическое создание/удаление приводит к утечке памяти. 99 процентов что сами браузеры. Хотя есть 1% что я у себя не все выловил smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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