121 lines
4.0 KiB
C++
121 lines
4.0 KiB
C++
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
#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();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|