Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.04.2012, 00:35
gamerfox gamerfox вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 7
Репутация: 10
По умолчанию Динамическое удаление TabSheet

Доброго времени суток. Народ, помогите. Пишу браузер, организовал вкладки через PageControl. Как удалять TabSheet по клику на кнопке? Вроде сделал, но удаляется только одна, а как сделать чтобы удалялись все?
Вот код.
TabSheet.destroy;
Ответить с цитированием
  #2  
Старый 26.04.2012, 00:47
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Использовать цикл по количеству вкладок и использовать TabSheet.Free.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 26.04.2012, 00:49
gamerfox gamerfox вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 7
Репутация: 10
По умолчанию

А как именно, я не врубаюсь. Я меньше года в Delphi и еще не совсем врубаюсь.
Ответить с цитированием
  #4  
Старый 26.04.2012, 01:04
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для написания браузера срок маленький, а для понимания работы с контролами вполне достаточный. У PageControl-а имеются свойства PageCount и Pages, читай по ним справку.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 26.04.2012, 01:06
gamerfox gamerfox вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 7
Репутация: 10
По умолчанию спс

Цитата:
Сообщение от angvelem
Для написания браузера срок маленький, а для понимания работы с контролами вполне достаточный. У PageControl-а имеются свойства PageCount и Pages, читай по ним справку.
Большое спс
Ответить с цитированием
  #6  
Старый 26.04.2012, 19:00
ilya38 ilya38 вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 5
Репутация: 10
По умолчанию

держи дружище ... ) надеюсь разберешься)
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsComCtrls;

type
  TForm1 
= class(TForm)
    
PageControl1TPageControl;
    
TabSheet1TTabSheet;
    
TabSheet2TTabSheet;
    
TabSheet3TTabSheet;
    
Button1TButton;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
label
back
;
var
 
integer;
begin
back
:
  for 
:= 0 to ComponentCount-do
  
begin
     
if Components[iis TTabSheet then
     begin
       
(Components[i] as TTabSheet).Free;
       goto 
back;
     
end;
  
end;
end;

end
Ответить с цитированием
  #7  
Старый 26.04.2012, 19:36
gamerfox gamerfox вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 7
Репутация: 10
Вопрос .

Не фуричит.
Ответить с цитированием
  #8  
Старый 26.04.2012, 20:25
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну как бы все несколько проще:
Код:
 while PageControl1.PageCount > 0
 do PageControl1.Pages[PageControl1.PageCount-1].Free
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 26.04.2012, 20:43
ilya38 ilya38 вне форума
Прохожий
 
Регистрация: 26.04.2012
Сообщения: 5
Репутация: 10
По умолчанию

я не сказал что там просто )
Ответить с цитированием
  #10  
Старый 26.04.2012, 21:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ilya38
я не сказал что там просто )
За такой код, бить нужно:
Код:
procedure TForm1.Button1Click(Sender: TObject); 
label 
back; 
var 
 i : integer; 
begin 
back: 
  for i := 0 to ComponentCount-1 do 
  begin 
     if Components[i] is TTabSheet then 
     begin 
       (Components[i] as TTabSheet).Free; 
       goto back; 
     end; 
  end; 
end; 
Применение Label не приветствуется в программировании, так ещё для цикла это просто вредно.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025