Componentes.Terceros.DevExp.../official/x.38/ExpressVerticalGrid/Demos/Delphi/SimpleVerticalGridDemo/SimpleVerticalGridDemoMain.pas
2008-08-27 11:56:15 +00:00

197 lines
7.1 KiB
ObjectPascal

unit SimpleVerticalGridDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
cxStyles, cxMaskEdit, cxBlobEdit, cxCurrencyEdit, cxSpinEdit,
cxCheckBox, cxHyperLinkEdit, cxEditRepositoryItems, cxEdit,
cxLookAndFeels, ActnList, ImgList, Menus, cxInplaceContainer,
cxControls, ComCtrls, StdCtrls, DemoBasicMain, cxGraphics,
cxVGrid, cxDBVGrid, DB, DBClient, cxClasses, cxImage;
type
TSimpleVerticalGridDemoMainForm = class(TDemoBasicMainForm)
miView: TMenuItem;
miBehavior: TMenuItem;
miSeparator2: TMenuItem;
miExplorerStyleCategory: TMenuItem;
miHeaders: TMenuItem;
miGridLines: TMenuItem;
miIncSearch: TMenuItem;
miImmediateEditor: TMenuItem;
ImageList: TImageList;
cxEditRepository1: TcxEditRepository;
cxEditRepository1ImageComboBoxItem1: TcxEditRepositoryImageComboBoxItem;
cxEditRepository1ImageComboBoxItem2: TcxEditRepositoryImageComboBoxItem;
cxEditRepository1CalcItem1: TcxEditRepositoryCalcItem;
cxDBVerticalGrid: TcxDBVerticalGrid;
actHeaders: TAction;
actGridLines: TAction;
actExplorerStyleCategory: TAction;
actLayoutStyleBandsView: TAction;
actLayoutStyleMultiRecordView: TAction;
actLayoutStyleSingleRecordView: TAction;
LayoutStyle1: TMenuItem;
actLayoutStyleBandsView1: TMenuItem;
actLayoutStyleMultiRecordView1: TMenuItem;
actLayoutStyleSingleRecordView1: TMenuItem;
actBandSizing: TAction;
BandSizing1: TMenuItem;
actCellHints: TAction;
CellHints1: TMenuItem;
actRowSizing: TAction;
RowSizing1: TMenuItem;
actImmediateEditor: TAction;
fldTrademark: TcxDBEditorRow;
fldModel: TcxDBEditorRow;
fldCategory: TcxDBEditorRow;
rowPerformance_Attributes: TcxCategoryRow;
fldHP: TcxDBEditorRow;
fldLiter: TcxDBEditorRow;
fldCyl: TcxDBEditorRow;
fldTransmissSpeedCount: TcxDBEditorRow;
fldTransmissAutomatic: TcxDBEditorRow;
cxDBVerticalGrid1DBMultiEditorRow1: TcxDBMultiEditorRow;
rowNotes: TcxCategoryRow;
fldDescription: TcxDBEditorRow;
fldHyperlink: TcxDBEditorRow;
rowOthers: TcxCategoryRow;
fldPrice: TcxDBEditorRow;
fldPicture: TcxDBEditorRow;
PaintStyle1: TMenuItem;
Net1: TMenuItem;
Delphi1: TMenuItem;
cxDBVerticalGridID: TcxDBMultiEditorRow;
procedure miExplorerStyleCategoryClick(Sender: TObject);
procedure miHeadersClick(Sender: TObject);
procedure miGridLinesClick(Sender: TObject);
procedure miIncSearchClick(Sender: TObject);
procedure cxDBVerticalGridStylesGetContentStyle(Sender: TObject;
AEditProp: TcxCustomEditorRowProperties; AFocused: Boolean;
ARecordIndex: Integer; var AStyle: TcxStyle);
procedure LayOutStyleExecute(Sender: TObject);
procedure actBandSizingExecute(Sender: TObject);
procedure actCellHintsExecute(Sender: TObject);
procedure actRowSizingExecute(Sender: TObject);
procedure actImmediateEditorExecute(Sender: TObject);
procedure actPaintStyleExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
SimpleVerticalGridDemoMainForm: TSimpleVerticalGridDemoMainForm;
implementation
uses SimpleVerticalGridDemoData;
{$R *.dfm}
procedure TSimpleVerticalGridDemoMainForm.FormCreate(Sender: TObject);
begin
LookAndFeelChange(miNativeStyle);
end;
procedure TSimpleVerticalGridDemoMainForm.miExplorerStyleCategoryClick(Sender: TObject);
begin
TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
cxDBVerticalGrid.OptionsView.CategoryExplorerStyle := TMenuItem(Sender).Checked;
if TMenuItem(Sender).Checked then
cxDBVerticalGrid.Styles.Category := SimpleVerticalGridDemoMainDM.cxStyle1
else
cxDBVerticalGrid.Styles.Category := nil;
end;
procedure TSimpleVerticalGridDemoMainForm.miHeadersClick(Sender: TObject);
begin
TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
cxDBVerticalGrid.OptionsView.ShowHeaders := TMenuItem(Sender).Checked;
end;
procedure TSimpleVerticalGridDemoMainForm.miGridLinesClick(Sender: TObject);
begin
TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
if TMenuItem(Sender).Checked then
cxDBVerticalGrid.OptionsView.GridLines := vglBoth
else
cxDBVerticalGrid.OptionsView.GridLines := vglNone;
end;
procedure TSimpleVerticalGridDemoMainForm.miIncSearchClick(Sender: TObject);
begin
TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
cxDBVerticalGrid.OptionsBehavior.IncSearch := TMenuItem(Sender).Checked;
end;
procedure TSimpleVerticalGridDemoMainForm.cxDBVerticalGridStylesGetContentStyle(
Sender: TObject; AEditProp: TcxCustomEditorRowProperties;
AFocused: Boolean; ARecordIndex: Integer; var AStyle: TcxStyle);
begin
if ARecordIndex = cxDBVerticalGrid.DataController.FocusedRowIndex then
AStyle := SimpleVerticalGridDemoMainDM.cxStyle8
else
AStyle := SimpleVerticalGridDemoMainDM.cxStyle3;
end;
procedure TSimpleVerticalGridDemoMainForm.LayOutStyleExecute(
Sender: TObject);
begin
if not TMenuItem(Sender).Checked then
begin
TMenuItem(Sender).Checked := True;
cxDBVerticalGrid.LayoutStyle := TcxvgLayoutStyle(TMenuItem(Sender).Tag);
end;
end;
procedure TSimpleVerticalGridDemoMainForm.actBandSizingExecute(
Sender: TObject);
begin
TCustomAction(Sender).Checked := not TCustomAction(Sender).Checked;
cxDBVerticalGrid.OptionsBehavior.BandSizing := TCustomAction(Sender).Checked
end;
procedure TSimpleVerticalGridDemoMainForm.actCellHintsExecute(
Sender: TObject);
begin
TCustomAction(Sender).Checked := not TCustomAction(Sender).Checked;
cxDBVerticalGrid.OptionsBehavior.CellHints := TCustomAction(Sender).Checked;
end;
procedure TSimpleVerticalGridDemoMainForm.actRowSizingExecute(
Sender: TObject);
begin
TCustomAction(Sender).Checked := not TCustomAction(Sender).Checked;
cxDBVerticalGrid.OptionsBehavior.RowSizing := TCustomAction(Sender).Checked;
end;
procedure TSimpleVerticalGridDemoMainForm.actImmediateEditorExecute(
Sender: TObject);
begin
TCustomAction(Sender).Checked := not TCustomAction(Sender).Checked;
cxDBVerticalGrid.OptionsBehavior.ImmediateEditor := TCustomAction(Sender).Checked;
end;
procedure TSimpleVerticalGridDemoMainForm.actPaintStyleExecute(
Sender: TObject);
begin
if not TMenuItem(Sender).Checked then
begin
TMenuItem(Sender).Checked := True;
cxDBVerticalGrid.OptionsView.PaintStyle := TcxvgPaintStyle(TMenuItem(Sender).Tag);
case cxDBVerticalGrid.OptionsView.PaintStyle of
psdotNet: begin
cxDBVerticalGrid.Styles.StyleSheet := SimpleVerticalGridDemoMainDM.cxVerticalGridStyleSheetDevExpress;
cxDBVerticalGrid.Styles.OnGetContentStyle := cxDBVerticalGridStylesGetContentStyle;
end;
psDelphi: begin
cxDBVerticalGrid.Styles.StyleSheet := nil;
cxDBVerticalGrid.Styles.OnGetContentStyle := nil;
end;
end;
cxDBVerticalGrid.LayoutChanged;
end;
end;
end.