Componentes.Terceros.DevExp.../official/x.19/ExpressQuantumGrid 5/Demos/Delphi/ColumnsSimpleDemo/ColumnsSimpleDemoMain.pas
2007-09-09 11:27:22 +00:00

273 lines
8.6 KiB
ObjectPascal

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.