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

📄 columnssimpledemomain.pas

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

{$I ..\..\cxVer.inc}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxControls, cxGridCustomView, cxGrid, cxCustomData,
  ExtCtrls, ActnList, ImgList, Menus, ComCtrls, cxGridCustomPopupMenu,
  cxGridPopupMenu, Grids, DBGrids,
  cxDBData, cxStyles, cxGraphics, cxFilter, cxData, cxEdit, DB, cxClasses,
  cxDataStorage, cxMRUEdit, cxButtonEdit, cxDropDownEdit, cxCheckBox,
  cxMaskEdit, cxDBLookupComboBox, cxTimeEdit, cxImageComboBox, cxSpinEdit,
  cxCalc, cxBlobEdit, cxImage, cxRadioGroup, cxMemo, cxHyperLinkEdit,
  cxLookAndFeels;

type
  TColumnsSimpleDemoMainForm = class(TForm)
    mmMain: TMainMenu;
    miAbout: TMenuItem;
    miFile: TMenuItem;
    miOptions: TMenuItem;
    miExit: TMenuItem;
    miLookFeel: TMenuItem;
    miKind: TMenuItem;
    miFlat: TMenuItem;
    miStandard: TMenuItem;
    miUltraFlat: TMenuItem;
    miNativeStyle: TMenuItem;
    sbMain: TStatusBar;
    Grid: TcxGrid;
    lvCustomers: TcxGridLevel;
    lvOrders: TcxGridLevel;
    lbDescription: TLabel;
    tvCustomers: TcxGridDBTableView;
    tvCustomersFirstName: TcxGridDBColumn;
    tvCustomersLastName: TcxGridDBColumn;
    tvCustomersCompany: TcxGridDBColumn;
    tvCustomersPrefix: TcxGridDBColumn;
    tvCustomersAddress: TcxGridDBColumn;
    tvCustomersCity: TcxGridDBColumn;
    tvCustomersState: TcxGridDBColumn;
    tvCustomersZipCode: TcxGridDBColumn;
    tvCustomersCustomer: TcxGridDBColumn;
    tvCustomersFaxPhone: TcxGridDBColumn;
    tvOrders: TcxGridDBTableView;
    tvOrdersProductID: TcxGridDBColumn;
    tvOrdersPurchaseDate: TcxGridDBColumn;
    tvOrdersTime: TcxGridDBColumn;
    tvOrdersPaymentType: TcxGridDBColumn;
    tvOrdersDescription: TcxGridDBColumn;
    tvOrdersQuantity: TcxGridDBColumn;
    tvOrdersPaymentAmount: TcxGridDBColumn;
    tvOrdersCarInfo: TcxGridDBColumn;
    N1: TMenuItem;
    miShowEditButtons: TMenuItem;
    miEditButtonsNever: TMenuItem;
    miEditButtonsForFocusedRecord: TMenuItem;
    miEditButtonsAlways: TMenuItem;
    N2: TMenuItem;
    miOptionsSelection: TMenuItem;
    miCellSelect: TMenuItem;
    miHideFocusRect: TMenuItem;
    miHideSelection: TMenuItem;
    miInvertSelect: TMenuItem;
    miMultiSelect: TMenuItem;
    LookAndFeelController: TcxLookAndFeelController;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure miNativeStyleClick(Sender: TObject);
    procedure miLookAndFeelKindClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tvCustomersStatePropertiesButtonClick(Sender: TObject);
    procedure tvCustomersCityPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure tvOrdersCarInfoPropertiesInitPopup(Sender: TObject);
    procedure tvOrdersCarInfoPropertiesCloseUp(Sender: TObject);
    procedure GridFocusedViewChanged(Sender: TcxCustomGrid;
      APrevFocusedView, AFocusedView: TcxCustomGridView);
    procedure miEditButtonsClick(Sender: TObject);
    procedure miCellSelectClick(Sender: TObject);
    procedure miHideFocusRectClick(Sender: TObject);
    procedure miHideSelectionClick(Sender: TObject);
    procedure miInvertSelectClick(Sender: TObject);
    procedure miMultiSelectClick(Sender: TObject);
  private
    procedure UpdateOptions;
  public
    { Public declarations }
  end;

var
  ColumnsSimpleDemoMainForm: TColumnsSimpleDemoMainForm;

implementation

uses
  ShellAPI, ColumnsSimpleDemoData, ColumnsSimpleDemoCities,
  ColumnsSimpleDemoCars, AboutDemoForm;

{$R *.dfm}

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

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

procedure TColumnsSimpleDemoMainForm.miNativeStyleClick(Sender: TObject);
begin
  with LookAndFeelController do
  begin
    NativeStyle := not NativeStyle;
    (Sender as TMenuItem).Checked := NativeStyle;
  end;  
end;

procedure TColumnsSimpleDemoMainForm.miLookAndFeelKindClick(
  Sender: TObject);
begin
  LookAndFeelController.Kind := TcxLookAndFeelKind(TMenuItem(Sender).MenuIndex);
  (Sender as TMenuItem).Checked := True;
end;

procedure TColumnsSimpleDemoMainForm.FormShow(Sender: TObject);
begin
  tvCustomers.DataController.ClearDetails;
  if ColumnsSimpleDemoDataDM.tblCars.Active then
  begin
    ColumnsSimpleDemoDataDM.tblCars.First;
    if Assigned(tvCustomers.Controller.FocusedRecord) then
      tvCustomers.Controller.FocusedRecord.Expanded := true;
  end;
end;

procedure TColumnsSimpleDemoMainForm.tvCustomersStatePropertiesButtonClick(
  Sender: TObject);
begin
  MessageDlg('Button click event handler', mtInformation, [mbOK], 0);
end;

procedure TColumnsSimpleDemoMainForm.tvCustomersCityPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  case AButtonIndex of
    0:
      if ColumnsSimpleDemoCitiesForm.ShowModal = mrOk then
      begin
        ColumnsSimpleDemoDataDM.tblCustomers.Edit;
        ColumnsSimpleDemoDataDM.tblCustomersCity.Value :=
          (ColumnsSimpleDemoCitiesForm.Value);
      end;
    1:
      ShellExecute(Handle, PChar('OPEN'), PChar('http://www.usacitiesonline.com/'), nil, nil, SW_SHOWMAXIMIZED);
  end;
end;

procedure TColumnsSimpleDemoMainForm.tvOrdersCarInfoPropertiesInitPopup(
  Sender: TObject);
begin
  ColumnSimpleDemoCarsForm.bvCars.DataController.LocateByKey(
    ColumnsSimpleDemoDataDM.tblOrdersProductID.AsInteger);
end;

procedure TColumnsSimpleDemoMainForm.tvOrdersCarInfoPropertiesCloseUp(
  Sender: TObject);
begin
  with ColumnsSimpleDemoDataDM do
  begin
    tblOrders.Edit;
    tblOrdersProductID.Value := tblCarsID.Value;
  end;
end;

procedure TColumnsSimpleDemoMainForm.GridFocusedViewChanged(
  Sender: TcxCustomGrid; APrevFocusedView,
  AFocusedView: TcxCustomGridView);
begin
  UpdateOptions;
end;

procedure TColumnsSimpleDemoMainForm.UpdateOptions;
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  case AView.OptionsView.ShowEditButtons of
    gsebNever: miEditButtonsNever.Checked := True;
    gsebForFocusedRecord: miEditButtonsForFocusedRecord.Checked := True;
    gsebAlways: miEditButtonsAlways.Checked := True;
  end;
  miCellSelect.Checked := AView.OptionsSelection.CellSelect;
  miHideFocusRect.Checked := AView.OptionsSelection.HideFocusRect;
  miHideSelection.Checked := AView.OptionsSelection.HideSelection;
  miInvertSelect.Checked := AView.OptionsSelection.InvertSelect;
  miMultiSelect.Checked := AView.OptionsSelection.MultiSelect;
end;

procedure TColumnsSimpleDemoMainForm.miEditButtonsClick(Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  case ((Sender as TMenuItem).Tag) of
    0: AView.OptionsView.ShowEditButtons := gsebNever;
    1: AView.OptionsView.ShowEditButtons := gsebForFocusedRecord;
    2: AView.OptionsView.ShowEditButtons := gsebAlways;
  end;
  (Sender as TMenuItem).Checked := True;
end;

procedure TColumnsSimpleDemoMainForm.miCellSelectClick(Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  with Sender as TMenuItem do
    Checked := not Checked;
  AView.OptionsSelection.CellSelect := (Sender as TMenuItem).Checked;
end;

procedure TColumnsSimpleDemoMainForm.miHideFocusRectClick(
  Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  with Sender as TMenuItem do
    Checked := not Checked;
  AView.OptionsSelection.HideFocusRect := (Sender as TMenuItem).Checked;
end;

procedure TColumnsSimpleDemoMainForm.miHideSelectionClick(
  Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  with Sender as TMenuItem do
    Checked := not Checked;
  AView.OptionsSelection.HideSelection := (Sender as TMenuItem).Checked;
end;

procedure TColumnsSimpleDemoMainForm.miInvertSelectClick(
  Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  with Sender as TMenuItem do
    Checked := not Checked;
  AView.OptionsSelection.InvertSelect := (Sender as TMenuItem).Checked;
end;

procedure TColumnsSimpleDemoMainForm.miMultiSelectClick(
  Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  with Sender as TMenuItem do
    Checked := not Checked;
  AView.OptionsSelection.MultiSelect := (Sender as TMenuItem).Checked;
end;

end.  

⌨️ 快捷键说明

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