Componentes.Terceros.DevExp.../official/x.26/ExpressQuantumGrid 6/Demos/Delphi/ColumnsMultiEditorsDemo/ColumnsMultiEditorsDemoMain.pas
2007-09-09 11:27:27 +00:00

151 lines
4.7 KiB
ObjectPascal

unit ColumnsMultiEditorsDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Dialogs,
Forms, cxControls, cxGridCustomTableView, cxGridTableView, cxGridCustomView,
cxLookAndFeels, cxData, cxDBData, cxClasses, cxEditRepositoryItems,
cxDataStorage, StdCtrls, cxEdit, ActnList, ImgList, Menus, ComCtrls,
cxGridLevel, cxStyles, cxGraphics, cxCustomData, cxGrid, cxFilter;
type
TColumnsMultiEditorsDemoMainForm = class(TForm)
mmMain: TMainMenu;
miAbout: TMenuItem;
miFile: TMenuItem;
miOptions: TMenuItem;
miExit: TMenuItem;
sbMain: TStatusBar;
lbDescrip: TLabel;
EditRepository: TcxEditRepository;
ImageComboLanguages: TcxEditRepositoryImageComboBoxItem;
ImageComboCommunication: TcxEditRepositoryImageComboBoxItem;
SpinItemYears: TcxEditRepositorySpinItem;
DateItemStartWorkFrom: TcxEditRepositoryDateItem;
Grid: TcxGrid;
tvSkills: TcxGridTableView;
clnName: TcxGridColumn;
clnSkill: TcxGridColumn;
clnGrade: TcxGridColumn;
lvSkills: TcxGridLevel;
cxStyleRepository1: TcxStyleRepository;
GridTableViewStyleSheetDevExpress: TcxGridTableViewStyleSheet;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle3: TcxStyle;
cxStyle4: TcxStyle;
cxStyle5: TcxStyle;
cxStyle6: TcxStyle;
cxStyle7: TcxStyle;
cxStyle8: TcxStyle;
cxStyle9: TcxStyle;
cxStyle10: TcxStyle;
cxStyle11: TcxStyle;
cxStyle12: TcxStyle;
cxStyle13: TcxStyle;
cxStyle14: TcxStyle;
miEditButtons: TMenuItem;
miEditButtonsNever: TMenuItem;
miEditButtonsForFocusedRecord: TMenuItem;
miEditButtonsAlways: TMenuItem;
LookAndFeelController: TcxLookAndFeelController;
procedure miAboutClick(Sender: TObject);
procedure miExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure clnGradeGetProperties(Sender: TcxCustomGridTableItem;
ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
procedure miEditButtonsAlwaysClick(Sender: TObject);
procedure miEditButtonsFocusedRecordClick(Sender: TObject);
procedure miEditButtonsNeverClick(Sender: TObject);
private
end;
var
ColumnsMultiEditorsDemoMainForm: TColumnsMultiEditorsDemoMainForm;
implementation
{$R *.dfm}
uses
AboutDemoForm, ColumnsMultiEditorsDemoDS;
procedure TColumnsMultiEditorsDemoMainForm.miAboutClick(Sender: TObject);
begin
ShowAboutDemoForm;
end;
procedure TColumnsMultiEditorsDemoMainForm.miExitClick(Sender: TObject);
begin
Close;
end;
procedure TColumnsMultiEditorsDemoMainForm.FormCreate(Sender: TObject);
begin
tvSkills.BeginUpdate;
try
clnSkill.DataBinding.ValueTypeClass := TcxStringValueType;
clnGrade.DataBinding.ValueTypeClass := TcxVariantValueType;
clnName.DataBinding.ValueTypeClass := TcxStringValueType;
finally
tvSkills.EndUpdate;
end;
tvSkills.DataController.CustomDataSource := TSkillDataSource.Create(tvSkills,
ImageComboLanguages.Properties.Items.Count,
ImageComboCommunication.Properties.Items.Count);
tvSkills.DataController.CustomDataSource.DataChanged;
tvSkills.DataController.Groups.FullExpand;
end;
procedure TColumnsMultiEditorsDemoMainForm.FormDestroy(Sender: TObject);
begin
tvSkills.DataController.CustomDataSource.Free;
end;
procedure TColumnsMultiEditorsDemoMainForm.clnGradeGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
begin
case ARecord.RecordIndex mod SkillCount of
0: AProperties := SpinItemYears.Properties;
1, 2: AProperties := ImageComboLanguages.Properties;
3: AProperties := ImageComboCommunication.Properties;
4: AProperties := DateItemStartWorkFrom.Properties;
end;
end;
procedure TColumnsMultiEditorsDemoMainForm.miEditButtonsAlwaysClick(
Sender: TObject);
begin
if tvSkills.OptionsView.ShowEditButtons <> gsebAlways then
begin
TMenuItem(Sender).Checked := True;
tvSkills.OptionsView.ShowEditButtons := gsebAlways;
end;
end;
procedure TColumnsMultiEditorsDemoMainForm.miEditButtonsFocusedRecordClick(
Sender: TObject);
begin
if tvSkills.OptionsView.ShowEditButtons <> gsebForFocusedRecord then
begin
TMenuItem(Sender).Checked := True;
tvSkills.OptionsView.ShowEditButtons := gsebForFocusedRecord;
end;
end;
procedure TColumnsMultiEditorsDemoMainForm.miEditButtonsNeverClick(
Sender: TObject);
begin
if tvSkills.OptionsView.ShowEditButtons <> gsebNever then
begin
TMenuItem(Sender).Checked := True;
tvSkills.OptionsView.ShowEditButtons := gsebNever;
end;
end;
end.