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.