I am using CB 10.3 update 1. With TAdvPageControl version 2.0.2.0. I am using a 32 bit VCL app for Windows 10. I am using the TGridPanel and dynamically create a TAdvPageControl. I dock a VCL form into the TAdvPageControl which automatically creates a TAdvTabSheet. I am trying to set the Propery TAdvTabSheet->ShowClose = true. I have tried to access TAdvTabSheet in the events TAdvPageControl->OnDockDrop and TAdvPageControl->OnEndDock but I have failed. Can you show how I would set the ShowClose = true.
Below creates my AdvPageControl on the GridPanel.
for(i=0; i<(rowCount * colCount); i++){
aPage = new TAdvPageControl(this);
aPage->Parent = GridPanel1;
aPage->Visible = true;
aPage->DockSite = true;
aPage->Name = "AdvPageControl"+IntToStr(i+1);
aPage->OnResize = MyAdvPageControl1Resize;
aPage->OnDockDrop = MyAdvPageControl1DockDrop;
aPage->OnUnDock = MyAdvPageControl1UnDock;
aPage->OnEndDock = MyAdvPageControl1EndDock;
aPage->Align = alClient;
}
Below is my test event OnDockDrop. I am not able to locate the TAdvTabSheet using dynamic_cast.
void __fastcall TMainForm::MyAdvPageControl1DockDrop(TObject *Sender, TDragDockObject *Source,
int X, int Y)
{
Memo1->Lines->Add("DockDrop event");
TAdvTabSheet *MyAdvTabSheet = dynamic_cast<TAdvTabSheet *>(Source);
if(MyAdvTabSheet){
Memo1->Lines->Add("Tab dynamic_cast succeed");
MyAdvTabSheet->ShowClose = true;
}else{
//This dynamic_cast fails
Memo1->Lines->Add("Tab dynamic_cast failed");
}
TAdvPageControl *MyAdvPageControl = dynamic_cast<TAdvPageControl *>(Sender);
if(MyAdvPageControl){
//This dynamic_cast succeeds
Memo1->Lines->Add("Page dynamic_cast succeed");
}else{
Memo1->Lines->Add("Page dynamic_cast failed");
}
}
//---------------------------------------------------------------------------