editorsinplacedemomain.pas

来自「DevExpress ExpressQuantumGrid Suite v5.9」· PAS 代码 · 共 201 行

PAS
201
字号
unit EditorsInPlaceDemoMain;

interface

uses
  Windows, Messages, 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, cxGridCardView, cxGridDBCardView, cxDBEdit, cxDropDownEdit,
  cxDataStorage, cxMRUEdit, cxButtonEdit, cxCheckBox, cxMaskEdit, cxMemo,
  cxDBLookupComboBox, cxTimeEdit, cxImageComboBox, cxSpinEdit, cxCalc,
  cxImage, cxHyperLinkEdit, cxLookAndFeels;

type
  TEditorsInPlaceDemoMainForm = 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;
    lbDescription: TLabel;
    miShowEditButtons: TMenuItem;
    miEditButtonsNever: TMenuItem;
    miEditButtonsForFocusedRecord: TMenuItem;
    miEditButtonsAlways: TMenuItem;
    N2: TMenuItem;
    lvOrders: TcxGridLevel;
    lvCars: TcxGridLevel;
    cvCustomers: TcxGridDBCardView;
    cvOrders: TcxGridDBCardView;
    cvCars: TcxGridDBCardView;
    cvCustomersFirstName: TcxGridDBCardViewRow;
    cvCustomersLastName: TcxGridDBCardViewRow;
    cvCustomersCompany: TcxGridDBCardViewRow;
    cvCustomersPrefix: TcxGridDBCardViewRow;
    cvCustomersAddress: TcxGridDBCardViewRow;
    cvCustomersCity: TcxGridDBCardViewRow;
    cvCustomersState: TcxGridDBCardViewRow;
    cvCustomersZipCode: TcxGridDBCardViewRow;
    cvCustomersCustomer: TcxGridDBCardViewRow;
    cvCustomersFaxPhone: TcxGridDBCardViewRow;
    cvCustomersDescription: TcxGridDBCardViewRow;
    cvOrdersCustomerID: TcxGridDBCardViewRow;
    cvOrdersProductID: TcxGridDBCardViewRow;
    cvOrdersPurchaseDate: TcxGridDBCardViewRow;
    cvOrdersTime: TcxGridDBCardViewRow;
    cvOrdersPaymentType: TcxGridDBCardViewRow;
    cvOrdersDescription: TcxGridDBCardViewRow;
    cvOrdersQuantity: TcxGridDBCardViewRow;
    cvOrdersPaymentAmount: TcxGridDBCardViewRow;
    cvCarsPicture: TcxGridDBCardViewRow;
    cvCarsCar: TcxGridDBCardViewRow;
    cvCarsCategory: TcxGridDBCardViewRow;
    cvCarsHyperlink: TcxGridDBCardViewRow;
    cvCarsInfo: TcxGridDBCardViewRow;
    LookAndFeelController: TcxLookAndFeelController;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure miNativeStyleClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cvCustomersStatePropertiesButtonClick(Sender: TObject);
    procedure cvCustomersCityPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure GridFocusedViewChanged(Sender: TcxCustomGrid;
      APrevFocusedView, AFocusedView: TcxCustomGridView);
    procedure miEditButtonsClick(Sender: TObject);
    procedure cvCarsCustomDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    procedure miLookAndFeelKindClick(Sender: TObject);
  private
    procedure UpdateOptions;
  end;

var
  EditorsInPlaceDemoMainForm: TEditorsInPlaceDemoMainForm;

implementation

{$R *.dfm}

uses
  EditorsInPlaceDemoData, ShellAPI,
  EditorsInPlaceDemoCities, EditorsInPlaceDemoCars, AboutDemoForm;

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

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

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

procedure TEditorsInPlaceDemoMainForm.FormShow(Sender: TObject);
begin
  TcxPopupEditProperties(cvCarsInfo.Properties).ImmediatePopup := True;
end;

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

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

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

procedure TEditorsInPlaceDemoMainForm.UpdateOptions;
var
  AView: TcxGridDBCardView;
begin
 AView := TcxGridDBCardView(Grid.FocusedView);
 case AView.OptionsView.ShowEditButtons of
   gsebNever: miEditButtonsNever.Checked := True;
   gsebForFocusedRecord: miEditButtonsForFocusedRecord.Checked := True;
   gsebAlways: miEditButtonsAlways.Checked := True;
 end;
end;

procedure TEditorsInPlaceDemoMainForm.miEditButtonsClick(
  Sender: TObject);
var
  AView: TcxGridDBCardView;
begin
  if not TMenuItem(Sender).Checked then
  begin
    AView := TcxGridDBCardView(Grid.FocusedView);
    case (TMenuItem(Sender).Tag) of
      0: AView.OptionsView.ShowEditButtons := gsebNever;
      1: AView.OptionsView.ShowEditButtons := gsebForFocusedRecord;
      2: AView.OptionsView.ShowEditButtons := gsebAlways;
    end;
    TMenuItem(Sender).Checked := True;
  end;
end;

procedure TEditorsInPlaceDemoMainForm.cvCarsCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if (AViewInfo.Item.Index = cvCarsInfo.Index) and (AViewInfo is TcxGridCardRowDataViewInfo) then
  begin
    ACanvas.Canvas.Brush.Style := bsSolid;
    ACanvas.Canvas.Brush.Color := $00F7EAD9;
    ACanvas.Canvas.FillRect(AViewInfo.Bounds);
    SetBkMode(ACanvas.Handle, TRANSPARENT);
    ACanvas.Font.Color := clBlack;
    ACanvas.DrawText('<click here and view dropdown window>', AViewInfo.Bounds, 0);
    ADone := True;
  end;
end;

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

end.

⌨️ 快捷键说明

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