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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2014, 10:11   #1
Smallboy
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 28
По умолчанию Удаление TabSheet

Доброе утро!

При работе с созданием закладок в PageControl возникли сложности.

Суть проблемы. По нажатию кнопки должна создаваться новая закладка в PageControl.
Затем на эту закладку помещается фрейм.
В PageControl, свойство CloseBottonMode стоит cbmActiveTab.

При нажатии крестика на закладке необходимо уничтожать созданный ранее TabSheet.
Каким образом я могу отследить событие уничтожение TabSheet.

тут код:

Код:
function CreateTabSheet(BottonName: string): TcxTabSheet;
    function CreateFrame(TabSheet: TcxTabSheet; BottonName: string): TdicEventType;
    procedure CreateGrid(dic_id: integer; Frame: TdicEventType);
  
var
  Form5       : TForm5;
  FrameTE  : TdicEventType;
  TabSheetTE  : TcxTabSheet;
 
 
uses dicEventTypes;
  
  
//создание закладки
function TForm5.CreateTabSheet(BottonName: string): TcxTabSheet;
var
  TabSheet : TcxTabSheet;
begin
  TabSheet := TcxTabSheet.Create(Form5);
  TabSheet.Caption := BottonName;
  TabSheet.PageControl := cxPageControl1;
  cxPageControl1.ActivePage :=TabSheet;
  TabSheet.ImageIndex :=2;
  CreateTabSheet := TabSheet;
end;
  
//создание фрейма
function TForm5.CreateFrame(TabSheet: TcxTabSheet; BottonName: string): TdicEventType;
var
  Frame : TdicEventType;
begin
  Frame := TdicEventType.Create(TabSheet);
  Frame.Parent := TabSheet;
  Frame.Align:= alClient;
  
  BottonControl(true);
  GetDictId(BottonName);
  CreateGrid(dic_id,Frame);
  Frame.cxGrid1.Align:= alTop;
  CreateFrame := Frame;
end;
  
procedure TForm5.acEventTypesExecute(Sender: TObject);
begin
  if TabSheetTE = nil then
  begin
    TabSheetTE:= CreateTabSheet(dxBarLargeButton6.Caption);
    FrameTE:= CreateFrame(TabSheetTE,dxBarLargeButton6.Caption);
    //тут надо задать обработчик события, где можно обработать данные при уничтожении закладки
  //  TabSheetTE.OnExit := HideTabSheet;
  end
end;
  
procedure TForm5.CreateGrid(dic_id: integer; Frame: TdicEventType);
begin
  Frame.OraQuery1.Active := false;
  Frame.OraQuery2.Active := false;
  Frame.OraQuery1.ParamByName('d_id').AsInteger:= dic_id;
  Frame.OraQuery2.ParamByName('d_id').AsInteger:= dic_id;
  Frame.OraQuery1.Active := true;
  Frame.OraQuery2.Active := true;
end;
Smallboy вне форума Ответить с цитированием
Старый 20.08.2014, 15:20   #2
Smallboy
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 28
По умолчанию

По сути меня интересует, как отследить нажатие на крестик в закладке(TabSheet). Например, как при уничтожении закладки выдать диалоговое окно "Вы уверены: да, нет?"
Smallboy вне форума Ответить с цитированием
Старый 20.08.2014, 16:10   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что за компонент? Он ведь не стандартный.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2014, 16:12   #4
Smallboy
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 28
По умолчанию

Аналог PageControl c расширенным функционалом(компоненты DevExpress). А cxTabSheet -- это страница в cxPageControl.

TabSheet создается, либо на форме мышкой либо динамически.

Последний раз редактировалось Smallboy; 20.08.2014 в 16:15.
Smallboy вне форума Ответить с цитированием
Старый 21.08.2014, 15:55   #5
Smallboy
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 28
По умолчанию

Все еще не нашел решения(
Smallboy вне форума Ответить с цитированием
Старый 21.08.2014, 20:22   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
компоненты DevExpress
Я этим я не работал никогда...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2014, 21:08   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ТС-у на кибере уже ткнули носом в нужное событие
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
checkbox в tabsheet ghest Компоненты Delphi 1 18.09.2010 23:00
графика на TabSheet Vinnipux Общие вопросы Delphi 3 18.05.2010 19:38
Элемент TabSheet Vinnipux Общие вопросы Delphi 2 17.05.2010 23:28
TabSheet one Компоненты Delphi 0 10.03.2007 07:38