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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2009, 10:54   #1
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
Подмигивание Закрытие вкладки

Помогите правильно закрывать вкладки плиззз
закрываю так:
Код:
if PageControl1.ActivePageIndex > 0 then
  begin
    if PageControl1.ActivePage.Controls[0] is TWebbrowser then
    begin
      (TWebbrowser(PageControl1.ActivePage.Controls[0])).Free;
      webbrowser1 := nil;
      PageControl1.ActivePage.Free;
    end;
  end;
но глючит, немогу понять в чем дело...
beemoto вне форума Ответить с цитированием
Старый 15.06.2009, 11:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А чего у меня нормательно работает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 11:53   #3
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

Stilet, ты хоть сам понял что написал!? xD
он у меня незакрывает первую вкладку и иногда выдает ошибки
beemoto вне форума Ответить с цитированием
Старый 15.06.2009, 12:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ты хоть сам понял что написал!?
А ты как думаешь, я не проверял?
Цитата:
он у меня незакрывает первую вкладку
Хы... Ну дык ты же сам ему это запретил написав:
Код:
if PageControl1.ActivePageIndex > 0 then
Цитата:
и иногда выдает ошибки
Ничего такого не видел. Работает стабильно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 12:57   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Радость

Хм... А у меня вообще не работает...

Хотя если на каждой странице поместить по TWebbrowser, тогда перестаёт вылетать...
Кстати почему там " webbrowser1:=nil; " - может надо тот, что на вкладке?

Да и вообще не понятно - просто нажимаешь на одну из неактивных вкладок и она закрывается? о_0
Или я не в тот обработчик это всё запихал?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2009, 13:16   #6
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

я этот код выдрал с одного исходника,
ну мне надо немного другой код:
чтоб он закрывал активную вкладку
beemoto вне форума Ответить с цитированием
Старый 15.06.2009, 13:25   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Я понял... В коде есть строчка:
Код:
if PageControl1.ActivePage.Controls[0] is TWebbrowser then
и если на вкладке вообще нету компонентов, то прога вылетает...

Так лучше:
Код:
If PageControl1.ActivePageIndex>0 Then
      Begin
      If PageControl1.ActivePage.ControlCount>0 Then
            If PageControl1.ActivePage.Controls[0] Is TWebBrowser Then
                  Begin
                  (TWebBrowser(PageControl1.ActivePage.Controls[0])).Free;
                  WebBrowser1:=Nil;
                  PageControl1.ActivePage.Free;
                  End;
      End;
хотя надо подумать ещё над этим...

Как закрывать активную ща подумаю...



<off>
Кстати мне было всегда интересно, как в браузерах сделали кнопочки "Закрыть" для каждой вкладки... Это другой компонент или они как-то дополнили TPageControl..?
</off>
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2009, 13:50   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Хотя если на каждой странице поместить по TWebbrowser, тогда перестаёт вылетать...
Ах вот почему у меня все работало...
Странно, я думал автор позаботился о том что на каждой вкладке полюбому должен быть браузер.
Цитата:
как в браузерах сделали кнопочки
Не так уж и трудно написать свой TPageControl. или взять из многочисленной разновидности существующих с наворотами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 14:36   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Я так и не понял чего делаем этой строчкой:
Код:
WebBrowser1:=Nil;
Почему всегда именно 1-й браузер?

Цитата:
ну мне надо немного другой код:
чтоб он закрывал активную вкладку
И для чего всё так сложно? Может просто уничтожать вкладку?
Код:
PageControl1.ActivePage.Destroy;



Можно сделать чтоб при переходе на другую вкладку предыдущая уничтожалась:
Код:
Var PageOld, PageNew: TTabSheet;

...

Procedure TForm1.FormCreate(Sender: TObject);
Begin
PageOld:=PageControl1.ActivePage; // запоминаем первую активную вкладку
End;

Procedure TForm1.PageControl1Change(Sender: TObject);
Begin
PageNew:=PageControl1.ActivePage; // запоминаем вкладку на которую нажали
PageOld.Destroy; // уничтожаем предыдущую активную вкладку
PageControl1.ActivePage:=PageNew; // активируем вкладку на которую нажали
PageOld:=PageNew; // запоминаем новую активную вкладку
End;
Но это как-то не совсем удобно...
Цитата:
Не так уж и трудно написать свой TPageControl
Вот этот код как раз бы неплохо подошел для кнопочки "Закрыть" (только наоборот переделать), но я пока не умею дополнять компоненты...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2009, 14:41   #10
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Было бы неплохо написать свой компонент(на основе PageControl и браузера) и не париться или взять готовый.
Levsha100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Страшные Вкладки (C#/C++) Balizard Помощь студентам 1 05.05.2009 06:49
закрытие вкладки в TTabControl Shade Помощь студентам 3 06.02.2009 13:10
Вкладки в делфи7 Никита1984 Компоненты Delphi 3 09.12.2007 17:33
закрытие вкладки в TTabControl Shade Компоненты Delphi 9 19.05.2007 03:02
Вкладки Каштанка Компоненты Delphi 1 02.05.2007 11:01