📄 masterdetailmultidemomain.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "shellapi.hpp"
#pragma hdrstop
#include "MasterDetailMultiDemoMain.h"
#include "MasterDetailMultiDemoData.h"
#include "AboutDemoForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cxClasses"
#pragma link "cxControls"
#pragma link "cxCustomData"
#pragma link "cxData"
#pragma link "cxDBData"
#pragma link "cxEdit"
#pragma link "cxFilter"
#pragma link "cxGraphics"
#pragma link "cxGrid"
#pragma link "cxGridCustomTableView"
#pragma link "cxGridCustomView"
#pragma link "cxGridDBTableView"
#pragma link "cxGridLevel"
#pragma link "cxGridTableView"
#pragma link "cxStyles"
#pragma link "cxGridBandedTableView"
#pragma link "cxGridCardView"
#pragma link "cxGridDBBandedTableView"
#pragma link "cxGridDBCardView"
#pragma link "cxLookAndFeels"
#pragma resource "*.dfm"
TMasterDetailMultiDemoMainForm *MasterDetailMultiDemoMainForm;
//---------------------------------------------------------------------------
__fastcall TMasterDetailMultiDemoMainForm::TMasterDetailMultiDemoMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMasterDetailMultiDemoMainForm::miAboutClick(TObject *Sender)
{
ShowAboutDemoForm();
}
//---------------------------------------------------------------------------
void __fastcall TMasterDetailMultiDemoMainForm::miExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMasterDetailMultiDemoMainForm::FormShow(TObject *Sender)
{
CreateLevels();
if (cxGrid->Levels->Count > 0)
GridActiveTabChanged(cxGrid, cxGrid->Levels->Items[0]);
}
//---------------------------------------------------------------------------
void __fastcall TMasterDetailMultiDemoMainForm::miTabPositionClick(
TObject *Sender)
{
((TMenuItem*)Sender)->Checked = true;
switch (((TMenuItem*)Sender)->Tag){
case 1:
cxGrid->RootLevelOptions->DetailTabsPosition = dtpLeft;
break;
case 2:
cxGrid->RootLevelOptions->DetailTabsPosition = dtpTop;
break;
default:
cxGrid->RootLevelOptions->DetailTabsPosition = dtpNone;
}
}
//---------------------------------------------------------------------------
void TMasterDetailMultiDemoMainForm::CreateLevels()
{
if (!(MasterDetailMultiDemoDataDM->tblGenres->Active))
MasterDetailMultiDemoDataDM->tblGenres->Open();
MasterDetailMultiDemoDataDM->tblGenres->First();
while (!MasterDetailMultiDemoDataDM->tblGenres->Eof)
{
TcxGridLevel *ALevel = cxGrid->Levels->Add();
ALevel->Caption = MasterDetailMultiDemoDataDM->tblGenresNAME->AsString;
ALevel->Options->DetailTabsPosition = dtpTop;
ALevel->Styles->Tab = MasterDetailMultiDemoDataDM->cxStyle1;
ALevel->Styles->TabsBackground = MasterDetailMultiDemoDataDM->cxStyle39;
ALevel->Add()->Caption = "Companies";
ALevel->Add()->Caption = "People";
ALevel->Add()->Caption = "Photos";
ALevel->Tag = MasterDetailMultiDemoDataDM->tblGenresID->AsInteger;
MasterDetailMultiDemoDataDM->tblGenres->Next();
}
}
void __fastcall TMasterDetailMultiDemoMainForm::GridActiveTabChanged(
TcxCustomGrid *Sender, TcxGridLevel *ALevel)
{
if (ALevel->IsMaster)
try
{
cxGrid->BeginUpdate();
ALevel->GridView = bvFilms;
ALevel->Items[0]->GridView = tvCompanies;
ALevel->Items[1]->GridView = cvPeople;
ALevel->Items[2]->GridView = cvPhotos;
MasterDetailMultiDemoDataDM->qryFilms->Params->Items[0]->Value = ALevel->Tag;
MasterDetailMultiDemoDataDM->qryFilms->Close();
MasterDetailMultiDemoDataDM->qryFilms->Open();
bvFilms->DataController->ClearDetails();
}
__finally
{
cxGrid->EndUpdate();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -