Добрый вечер!
При работе с созданием закладок в 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;