columnssimpledemomain.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 252 行

PAS
252
字号
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;
    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;
    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);
    procedure tvCustomersCompanyGetCellHint(Sender: TcxCustomGridTableItem;
      ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo;
      const AMousePos: TPoint; var AHintText: TCaption;
      var AIsHintMultiLine: Boolean; var AHintTextRect: TRect);
  private
    function GetView: TcxGridTableView;
    procedure UpdateMenu;
  public
    property View: TcxGridTableView read GetView;
  end;

var
  ColumnsSimpleDemoMainForm: TColumnsSimpleDemoMainForm;

implementation

uses
  ShellAPI, ColumnsSimpleDemoData, ColumnsSimpleDemoCities,
  ColumnsSimpleDemoCars, AboutDemoForm;

{$R *.dfm}

function TColumnsSimpleDemoMainForm.GetView: TcxGridTableView;
begin
  Result := TcxGridTableView(Grid.FocusedView);
end;

procedure TColumnsSimpleDemoMainForm.UpdateMenu;
begin
  miShowEditButtons[Ord(View.OptionsView.ShowEditButtons)].Checked := True;

  miCellSelect.Checked := View.OptionsSelection.CellSelect;
  miHideFocusRect.Checked := View.OptionsSelection.HideFocusRect;
  miHideSelection.Checked := View.OptionsSelection.HideSelection;
  miInvertSelect.Checked := View.OptionsSelection.InvertSelect;
  miMultiSelect.Checked := View.OptionsSelection.MultiSelect;

  miNativeStyle.Checked := LookAndFeelController.NativeStyle;
  miKind[Ord(LookAndFeelController.Kind)].Checked := True;
end;

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
    NativeStyle := not NativeStyle;
  UpdateMenu;
end;

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

procedure TColumnsSimpleDemoMainForm.FormShow(Sender: TObject);
begin
  if tvCustomers.Controller.FocusedRecord <> nil then
    tvCustomers.Controller.FocusedRecord.Expanded := True;
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.tvCustomersCompanyGetCellHint(
  Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint;
  var AHintText: TCaption; var AIsHintMultiLine: Boolean;
  var AHintTextRect: TRect);
begin
  AHintText := ARecord.DisplayTexts[tvCustomersAddress.Index] + #13 +
    ARecord.DisplayTexts[tvCustomersCity.Index] + ', ' + ARecord.DisplayTexts[tvCustomersState.Index] + ' ' +
    ARecord.DisplayTexts[tvCustomersZipCode.Index] + #13 +
    ARecord.DisplayTexts[tvCustomersFaxPhone.Index];
  AHintTextRect.Top := ACellViewInfo.Bounds.Bottom + 3;  
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
  UpdateMenu;
end;

procedure TColumnsSimpleDemoMainForm.miEditButtonsClick(Sender: TObject);
begin
  View.OptionsView.ShowEditButtons := TcxGridShowEditButtons(TMenuItem(Sender).MenuIndex);
  UpdateMenu;
end;

procedure TColumnsSimpleDemoMainForm.miCellSelectClick(Sender: TObject);
begin
  with View.OptionsSelection do
    CellSelect := not CellSelect;
  UpdateMenu;
end;

procedure TColumnsSimpleDemoMainForm.miHideFocusRectClick(Sender: TObject);
begin
  with View.OptionsSelection do
    HideFocusRectOnExit := not HideFocusRectOnExit;
  UpdateMenu;
end;

procedure TColumnsSimpleDemoMainForm.miHideSelectionClick(Sender: TObject);
begin
  with View.OptionsSelection do
    HideSelection := not HideSelection;
  UpdateMenu;  
end;

procedure TColumnsSimpleDemoMainForm.miInvertSelectClick(Sender: TObject);
begin
  with View.OptionsSelection do
    InvertSelect := not InvertSelect;
  UpdateMenu;  
end;

procedure TColumnsSimpleDemoMainForm.miMultiSelectClick(Sender: TObject);
begin
  with View.OptionsSelection do
    MultiSelect := not MultiSelect;
  UpdateMenu;  
end;

end.  

⌨️ 快捷键说明

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