⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 masterdetailmultidemomain.pas

📁 DevExpress ExpressQuantumGrid Suite v5.9 Full Source
💻 PAS
字号:
unit MasterDetailMultiDemoMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, cxControls, cxLookupGrid, cxLookupDBGrid, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView, cxGrid,
  cxGridCardView, cxGridDBCardView, cxMaskEdit, StdCtrls, ExtCtrls,
  cxContainer, cxEdit, cxTextEdit, cxDropDownEdit, cxDBEdit, cxStyles,
  Menus, ActnList, ImgList, ComCtrls, cxLookAndFeels, DB,
  DBTables, cxCustomData, cxGraphics, cxFilter, cxData, cxDBData, cxClasses,
  cxGridBandedTableView, cxGridDBBandedTableView, cxDataStorage,
  cxDBLookupComboBox, cxBlobEdit, cxImage, cxMemo, cxHyperLinkEdit;

type
  TMasterDetailMultiDemoMainForm = class(TForm)
    mmMain: TMainMenu;
    miAbout: TMenuItem;
    miFile: TMenuItem;
    miOptions: TMenuItem;
    miExit: TMenuItem;
    miGenreTabPosition: TMenuItem;
    sbMain: TStatusBar;
    lbDescrip: TLabel;
    Grid: TcxGrid;
    cvPeople: TcxGridDBCardView;
    cvPeopleName: TcxGridDBCardViewRow;
    cvPeoplePersonLineID: TcxGridDBCardViewRow;
    cvPeopleFIRSTNAME: TcxGridDBCardViewRow;
    cvPeopleSECONDNAME: TcxGridDBCardViewRow;
    cvPeopleNICKNAME: TcxGridDBCardViewRow;
    cvPeopleBIRTHNAME: TcxGridDBCardViewRow;
    cvPeopleDATEOFBIRTH: TcxGridDBCardViewRow;
    cvPeopleLOCATIONOFBIRTH: TcxGridDBCardViewRow;
    cvPeopleBIOGRAPHY: TcxGridDBCardViewRow;
    cvPeopleHOMEPAGE: TcxGridDBCardViewRow;
    cvPeopleID: TcxGridDBCardViewRow;
    cvPeopleFilmID: TcxGridDBCardViewRow;
    cvPeopleBIRTHCOUNTRY: TcxGridDBCardViewRow;
    cvPeopleGender: TcxGridDBCardViewRow;
    tvCompanies: TcxGridDBTableView;
    tvCompaniesName: TcxGridDBColumn;
    tvCompaniesType: TcxGridDBColumn;
    tvCompaniesCountry: TcxGridDBColumn;
    tvCompaniesWebSite: TcxGridDBColumn;
    tvCompaniesID: TcxGridDBColumn;
    tvCompaniesFILMID: TcxGridDBColumn;
    cvPhotos: TcxGridDBCardView;
    cvPhotosID: TcxGridDBCardViewRow;
    cvPhotosFILMID: TcxGridDBCardViewRow;
    cvPhotosSCREEN: TcxGridDBCardViewRow;
    cvPhotosICON: TcxGridDBCardViewRow;
    bvFilms: TcxGridDBBandedTableView;
    bvFilmsCAPTION: TcxGridDBBandedColumn;
    bvFilmsYEAR: TcxGridDBBandedColumn;
    bvFilmsPLOTOUTLINE: TcxGridDBBandedColumn;
    bvFilmsRUNTIME: TcxGridDBBandedColumn;
    bvFilmsPHOTO: TcxGridDBBandedColumn;
    bvFilmsWEBSITE: TcxGridDBBandedColumn;
    miTabPositionLeft: TMenuItem;
    miTabPositionTop: TMenuItem;
    miTabPositionNone: TMenuItem;
    LookAndFeelController: TcxLookAndFeelController;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure GridActiveTabChanged(Sender: TcxCustomGrid;
      ALevel: TcxGridLevel);
    procedure GridRootLevelStylesGetTabStyle(Sender,
      ATabLevel: TcxGridLevel; out AStyle: TcxStyle);
    procedure miTabPositionClick(Sender: TObject);
  private
    procedure CreateLevels;
  end;

var
  MasterDetailMultiDemoMainForm: TMasterDetailMultiDemoMainForm;

implementation

{$R *.dfm}

uses
  MasterDetailMultiDemoData, AboutDemoForm;

procedure TMasterDetailMultiDemoMainForm.miAboutClick(Sender: TObject);
begin
  ShowAboutDemoForm;
end;

procedure TMasterDetailMultiDemoMainForm.miExitClick(Sender: TObject);
begin
  Close;
end;

procedure TMasterDetailMultiDemoMainForm.FormShow(Sender: TObject);
begin
  CreateLevels;
  if Grid.Levels.Count > 0 then
    GridActiveTabChanged(Grid, Grid.Levels[0]);
end;

procedure TMasterDetailMultiDemoMainForm.CreateLevels;
begin
  with MasterDetailMultiDemoMainDM do
  begin
    if not tblGenres.Active then
      tblGenres.Open;
    tblGenres.First;
    while not tblGenres.Eof do
    begin
      with Grid.Levels.Add do
      begin
        Caption := tblGenresName.AsString;
        Options.DetailTabsPosition := dtpTop;
        Styles.Tab := cxStyle1;
        Styles.TabsBackground := cxStyle39;
        Add.Caption := 'Companies';
        Add.Caption := 'People';
        Add.Caption := 'Photos';
        Tag := tblGenresID.AsInteger;
      end;
      tblGenres.Next;
    end;
  end;
end;

procedure TMasterDetailMultiDemoMainForm.GridActiveTabChanged(
  Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
  if ALevel.IsMaster then
    try
      Grid.BeginUpdate;
      ALevel.GridView := bvFilms;
      ALevel.Items[0].GridView := tvCompanies;
      ALevel.Items[1].GridView := cvPeople;
      ALevel.Items[2].GridView := cvPhotos;
      with MasterDetailMultiDemoMainDM do
      begin
        qryFilms.Params[0].Value := ALevel.Tag;
        qryFilms.Close;
        qryFilms.Open;
      end;
      bvFilms.DataController.ClearDetails;
    finally
      Grid.EndUpdate;
    end;
end;

procedure TMasterDetailMultiDemoMainForm.GridRootLevelStylesGetTabStyle(
  Sender, ATabLevel: TcxGridLevel; out AStyle: TcxStyle);
begin
  if Grid.ActiveLevel = ATabLevel then
    AStyle := MasterDetailMultiDemoMainDM.cxStyle9;
end;

procedure TMasterDetailMultiDemoMainForm.miTabPositionClick(Sender: TObject);
begin
  (Sender as TMenuItem).Checked := True;
  Grid.RootLevelOptions.DetailTabsPosition :=
    TcxGridDetailTabsPosition(Byte((Sender as TMenuItem).Tag));
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -