Componentes.Terceros.DevExp.../official/x.30/ExpressQuantumGrid 6/Demos/Delphi/ColumnsSimpleDemo/ColumnsSimpleDemoMain.pas
2007-12-16 17:06:54 +00:00

252 lines
8.4 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;
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.