📄 columnsmultieditorsdemomain.pas
字号:
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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -