( 不能附文件,请包涵,自己贴下成pas文件,加入专案使用或放到单独的包)
{==============================================================================}
{ Techamtion Application Service/Techamtion Transaction Server }
{ }
{ Copyright (C), 2003-2008, Acroprise Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ Author : cc,Mustapha.Wang }
{ Package : dxClassMethod70.dpk }
{ Version : 1.00 }
{ Creation : 2004/05/06 }
{ Revision : }
{ Task : }
{ 1.注册dx/cx元件的多语言替换函数; }
{==============================================================================}
unit acroLibMLdxClassMethod;
interface
uses
Classes, Graphics, Dialogs, Variants, AcroMultiClassMethod, dxTL, dxTLClms, cxTL;
procedure TCustomdxTreeListControl_ReplaceNodes(ATable:IDataLocate; AComponent:TCustomdxTreeListControl; ACodePage,ASeqNo:String; AFont:TFont);
procedure TcxCustomTreeListControl_ReplaceNodes(ATable:IDataLocate; AComponent:TcxCustomTreeListControl; ACodePage,ASeqNo:String; AFont:TFont);
implementation
uses
dxBar, dxDockControl, dxStatusBar,
dxNavBarCollns,
dxOrgChr,
dxPSCore,
cxGrid, cxGridCustomTableView, cxGridBandedTableView,
cxLabel, cxDropDownEdit, cxDBLookupComboBox,
cxCheckBox, cxGroupBox, cxRadioGroup, cxPC,
cxEdit, cxEditRepositoryItems, cxInplaceContainer,
cxDBEditRepository, cxImageComboBox, cxCheckGroup,
cxButtonEdit;
type
TcxCustomCheckBox_Temp=class(TcxCustomCheckBox);
TcxCustomGroupBox_Temp=class(TcxCustomGroupBox);
TcxCustomRadioGroup_Temp=class(TcxCustomRadioGroup);
TcxCustomTreeListControl_Temp=class(TcxCustomTreeListControl);
TcxButtonGroupItem_Temp=class(TcxButtonGroupItem);
procedure Proc_TdxBarManager(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
//TdxBarManager(AComponent).Font.Assign(AFont); // Sometimes it raise Exception if Font.Size is different from the value set in design time
for i:=0 to TdxBarManager(AComponent).Categories.Count-1 do
TdxBarManager(AComponent).Categories[i] :=
GetDisplayValue(ATable, TdxBarManager(AComponent).Categories[i], ACodePage, ASeqNo);
for i:=0 to TdxBarManager(AComponent).Bars.Count-1 do
TdxBarManager(AComponent).Bars[i].Caption :=
GetDisplayValue(ATable, TdxBarManager(AComponent).Bars[i].Caption, ACodePage, ASeqNo);
end;
procedure Proc_TdxBarItem(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TdxBarItem(AComponent).Hint := // Must replace Hint before Caption
GetDisplayValue(ATable, TdxBarItem(AComponent).Hint, ACodePage, ASeqNo); // Refer to ML20030125.txt
TdxBarItem(AComponent).Caption :=
GetDisplayValue(ATable, TdxBarItem(AComponent).Caption, ACodePage, ASeqNo);
end;
procedure Proc_TdxBarCustomCombo(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i, nItemIndex: Integer;
begin
Proc_TdxBarItem(ATable, AComponent, ACodePage, ASeqNo, AFont);
TdxBarCustomCombo(AComponent).Items.BeginUpdate;
try
nItemIndex := TdxBarCustomCombo(AComponent).ItemIndex;
for i:=0 to TdxBarCustomCombo(AComponent).Items.Count-1 do
TdxBarCustomCombo(AComponent).Items[i] :=
GetDisplayValue(ATable, TdxBarCustomCombo(AComponent).Items[i], ACodePage, ASeqNo);
TdxBarCustomCombo(AComponent).ItemIndex := nItemIndex;
finally
TdxBarCustomCombo(AComponent).Items.EndUpdate;
end;
end;
procedure Proc_TdxCustomDockControl(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TdxCustomDockControl(AComponent).Caption := GetDisplayValue(ATable, TdxCustomDockControl(AComponent).Caption, ACodePage, ASeqNo);
end;
procedure Proc_TdxStatusBar(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
for i:=0 to TdxStatusBar(AComponent).Panels.Count-1 do
TdxStatusBar(AComponent).Panels[i].Text := GetDisplayValue(ATable, TdxStatusBar(AComponent).Panels[i].Text, ACodePage, ASeqNo);
end;
procedure Proc_TdxNavBarGroup(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TdxNavBarGroup(AComponent).Caption:=
GetDisplayValue(ATable, TdxNavBarGroup(AComponent).Caption, ACodePage, ASeqNo);
TdxNavBarGroup(AComponent).Hint:=
GetDisplayValue(ATable, TdxNavBarGroup(AComponent).Hint, ACodePage, ASeqNo);
end;
procedure Proc_TdxNavBarItem(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TdxNavBarItem(AComponent).Caption:=
GetDisplayValue(ATable,TdxNavBarItem(AComponent).Caption, ACodePage, ASeqNo);
TdxNavBarItem(AComponent).Hint:=
GetDisplayValue(ATable,TdxNavBarItem(AComponent).Hint, ACodePage, ASeqNo);
end;
procedure Proc_TdxCustomOrgChart(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
procedure ReplaceNode(ANode:TdxOcNode);
var
i: Integer;
begin
ANode.Text := GetDisplayValue(ATable, ANode.Text, ACodePage, ASeqNo);
for i:=0 to ANode.Count-1 do ReplaceNode(ANode.Items[i]);
end;
var
i: Integer;
begin
TdxCustomOrgChart(AComponent).BeginUpdate;
try
for i:=0 to TdxCustomOrgChart(AComponent).RootNode.Count-1 do
ReplaceNode(TdxCustomOrgChart(AComponent).Items[i]);
finally
TdxCustomOrgChart(AComponent).EndUpdate;
end;
end;
procedure TCustomdxTreeListControl_ReplaceNodes(ATable:IDataLocate; AComponent:TCustomdxTreeListControl; ACodePage,ASeqNo:String; AFont:TFont);
procedure ReplaceNode(ANode:TdxTreeListNode);
var
i: Integer;
begin
for i:=0 to TCustomdxTreeListControl(AComponent).ColumnCount-1 do
if VarIsStr(ANode.Values[i]) then
ANode.Values[i] := GetDisplayValue(ATable, ANode.Values[i], ACodePage, ASeqNo);
for i:=0 to ANode.Count-1 do ReplaceNode(ANode.Items[i]);
end;
var
i: Integer;
begin
TCustomdxTreeListControl(AComponent).BeginUpdate;
try
for i:=0 to TCustomdxTreeListControl(AComponent).Count-1 do
ReplaceNode(TCustomdxTreeListControl(AComponent).Items[i]);
finally
TCustomdxTreeListControl(AComponent).EndUpdate;
end;
end;
procedure Proc_TCustomdxTreeListControl(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i,j: Integer;
AColumn: TdxTreeListPickColumn;
begin
TCustomdxTreeListControl(AComponent).BeginUpdate;
try
for i:=0 to TCustomdxTreeListControl(AComponent).Bands.Count-1 do
begin
TCustomdxTreeListControl(AComponent).Bands[i].Caption :=
GetDisplayValue(ATable, TCustomdxTreeListControl(AComponent).Bands[i].Caption, ACodePage, ASeqNo);
end;
for i:=0 to TCustomdxTreeListControl(AComponent).ColumnCount-1 do
begin
TCustomdxTreeListControl(AComponent).Columns[i].Caption :=
GetDisplayValue(ATable, TCustomdxTreeListControl(AComponent).Columns[i].Caption, ACodePage, ASeqNo);
if TCustomdxTreeListControl(AComponent).Columns[i] is TdxTreeListPickColumn then
begin
AColumn := TdxTreeListPickColumn(TCustomdxTreeListControl(AComponent).Columns[i]);
for j:=0 to AColumn.Items.Count-1 do
AColumn.Items[j] := GetDisplayValue(ATable, AColumn.Items[j], ACodePage, ASeqNo);
end;
end;
finally
TCustomdxTreeListControl(AComponent).EndUpdate;
end;
end;
procedure Proc_TBasedxReportLink(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
procedure TranslateStrings(AStrs:TStrings);
var
i: Integer;
begin
AStrs.BeginUpdate;
try
for i:=0 to AStrs.Count-1 do
AStrs[i] := GetDisplayValue(ATable, AStrs[i], ACodePage, ASeqNo);
finally
AStrs.EndUpdate;
end;
end;
begin
TBasedxReportLink(AComponent).ReportTitle.Text :=
GetDisplayValue(ATable, TBasedxReportLink(AComponent).ReportTitle.Text, ACodePage, ASeqNo);
//这些东西必须也翻译,否则不能使用,如[Page # of Pages #]
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageFooter.LeftTitle);
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageFooter.CenterTitle);
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageFooter.RightTitle);
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageHeader.LeftTitle);
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageHeader.CenterTitle);
TranslateStrings(TBasedxReportLink(AComponent).PrinterPage.PageHeader.RightTitle);
end;
procedure Proc_TcxCustomGrid(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i,j: Integer;
AV : TcxCustomGridTableView;
BV : TcxGridBandedTableView;
begin
TcxCustomGrid(AComponent).BeginUpdate;
try
for i:=0 to TcxCustomGrid(AComponent).Levels.Count-1 do
TcxCustomGrid(AComponent).Levels[i].Caption :=
GetDisplayValue(ATable, TcxCustomGrid(AComponent).Levels[i].Caption, ACodePage, ASeqNo);
for i:=0 to TcxCustomGrid(AComponent).ViewCount-1 do
begin
if TcxCustomGrid(AComponent).Views[i] is TcxCustomGridTableView then
begin
AV := TcxCustomGridTableView(TcxCustomGrid(AComponent).Views[i]);
for j:=0 to AV.ItemCount-1 do
AV.Items[j].Caption := GetDisplayValue(ATable,AV.Items[j].Caption, ACodePage, ASeqNo);
end;
if TcxCustomGrid(AComponent).Views[i] is TcxGridBandedTableView then
begin
BV := TcxGridBandedTableView(TcxCustomGrid(AComponent).Views[i]);
for j:=0 to BV.Bands.Count-1 do
BV.Bands.Items[j].Caption := GetDisplayValue(ATable,BV.Bands.Items[j].Caption, ACodePage, ASeqNo);
end;
end;
finally
TcxCustomGrid(AComponent).EndUpdate;
end;
end;
procedure Proc_TcxCustomLabel(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TcxCustomLabel(AComponent).Caption := GetDisplayValue(ATable, TcxCustomLabel(AComponent).Caption, ACodePage, ASeqNo);
end;
procedure Proc_TcxCustomComboBox(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i, nItemIndex: Integer;
begin
nItemIndex := TcxCustomComboBox(AComponent).ItemIndex;
for i:=0 to TcxCustomComboBox(AComponent).Properties.Items.Count-1 do
TcxCustomComboBox(AComponent).Properties.Items[i] := GetDisplayValue(ATable, TcxComboBox(AComponent).Properties.Items[i], ACodePage, ASeqNo);
TcxCustomComboBox(AComponent).ItemIndex := nItemIndex;
end;
procedure Proc_TcxCustomLookupComboBox(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
for i:=0 to TcxCustomLookupComboBox(AComponent).Properties.ListColumns.Count-1 do
TcxCustomLookupComboBox(AComponent).Properties.ListColumns[i].Caption :=
GetDisplayValue(ATable, TcxCustomLookupComboBox(AComponent).Properties.ListColumns[i].Caption, ACodePage, ASeqNo);
end;
procedure Proc_TcxCustomCheckBox(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TcxCustomCheckBox_Temp(AComponent).Caption := GetDisplayValue(ATable, TcxCustomCheckBox_Temp(AComponent).Caption, ACodePage, ASeqNo);
end;
procedure Proc_TcxCustomGroupBox(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
begin
TcxCustomGroupBox_Temp(AComponent).Caption := GetDisplayValue(ATable,TcxCustomGroupBox_Temp(AComponent).Caption, ACodePage, ASeqNo);
end;
procedure Proc_TcxCustomRadioGroup(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxCustomRadioGroup_Temp(AComponent).Caption :=
GetDisplayValue(ATable, TcxCustomRadioGroup_Temp(AComponent).Caption, ACodePage, ASeqNo);
for i:=0 to TcxCustomRadioGroup_Temp(AComponent).Properties.Items.Count-1 do
TcxCustomRadioGroup_Temp(AComponent).Properties.Items[i].Caption :=
GetDisplayValue(ATable, TcxCustomRadioGroup_Temp(AComponent).Properties.Items[i].Caption, ACodePage, ASeqNo);
end;
procedure Proc_TcxPageControl(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i:integer;
begin
for i:=0 to TcxPageControl(AComponent).PageCount-1 do
TcxPageControl(AComponent).Pages[i].Caption :=
GetDisplayValue(ATable, TcxPageControl(AComponent).Pages[i].Caption, ACodePage, ASeqNo);
end;
//RepositoryItem的始祖
procedure Proc_TcxEditRepositoryItem(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
vClassMethod: TClassMethod;
vProperties : TcxCustomEditProperties;
begin
vProperties := TcxEditRepositoryItem(AComponent).Properties;
if vProperties=nil then exit;
vClassMethod := AcroMultiClassMethod.AcroClassMethodStorage.GetNearstClassMethod(vProperties.ClassType);
if vClassMethod<>nil then
vClassMethod.MLMethod(ATable, vProperties, ACodePage, ASeqNo, AFont);
end;
//cxGrid的Column的始祖
procedure Proc_TcxCustomGridTableItem(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
vClassMethod: TClassMethod;
vProperties : TcxCustomEditProperties;
begin
vProperties := TcxCustomGridTableItem(AComponent).Properties;
if vProperties=nil then exit;
vClassMethod := AcroMultiClassMethod.AcroClassMethodStorage.GetNearstClassMethod(vProperties.ClassType);
if vClassMethod<>nil then
vClassMethod.MLMethod(ATable, vProperties, ACodePage, ASeqNo, AFont);
end;
//cxTreeList的Column的始祖
procedure Proc_TcxCustomInplaceEditContainer(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
vClassMethod: TClassMethod;
vProperties : TcxCustomEditProperties;
begin
vProperties := TcxCustomInplaceEditContainer(AComponent).Properties;
if vProperties=nil then exit;
vClassMethod := AcroMultiClassMethod.AcroClassMethodStorage.GetNearstClassMethod(vProperties.ClassType);
if vClassMethod<>nil then
vClassMethod.MLMethod(ATable, vProperties, ACodePage, ASeqNo, AFont);
end;
procedure Proc_TcxCustomEditProperties(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxCustomEditProperties(AComponent).Buttons.BeginUpdate;
try
for i:=0 to TcxCustomEditProperties(AComponent).Buttons.Count-1 do
TcxCustomEditProperties(AComponent).Buttons[i].Caption :=
GetDisplayValue(ATable, TcxCustomEditProperties(AComponent).Buttons[i].Caption, ACodePage, ASeqNo);
finally
TcxCustomEditProperties(AComponent).Buttons.EndUpdate;
end;
end;
procedure Proc_TcxLookupComboBoxProperties(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxLookupComboBoxProperties(AComponent).ListColumns.BeginUpdate;
try
for i:=0 to TcxLookupComboBoxProperties(AComponent).ListColumns.Count-1 do
TcxLookupComboBoxProperties(AComponent).ListColumns[i].Caption :=
GetDisplayValue(ATable, TcxLookupComboBoxProperties(AComponent).ListColumns[i].Caption, ACodePage, ASeqNo);
finally
TcxLookupComboBoxProperties(AComponent).ListColumns.EndUpdate;
end;
end;
procedure Proc_TcxImageComboBoxProperties(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxImageComboBoxProperties(AComponent).Items.BeginUpdate;
try
for i:=0 to TcxImageComboBoxProperties(AComponent).Items.Count-1 do
TcxImageComboBoxProperties(AComponent).Items[i].Description :=
GetDisplayValue(ATable, TcxImageComboBoxProperties(AComponent).Items[i].Description, ACodePage, ASeqNo);
finally
TcxImageComboBoxProperties(AComponent).Items.EndUpdate;
end;
end;
//RadioGroupProperties与CheckGroupProperties的祖先
procedure Proc_TcxCustomButtonGroupProperties(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxCustomButtonGroupProperties(AComponent).Items.BeginUpdate;
try
for i:=0 to TcxCustomButtonGroupProperties(AComponent).Items.Count-1 do
begin
TcxButtonGroupItem_Temp(TcxCustomButtonGroupProperties(AComponent).Items[i]).Caption :=
GetDisplayValue(ATable, TcxButtonGroupItem_Temp(TcxCustomButtonGroupProperties(AComponent).Items[i]).Caption, ACodePage, ASeqNo);
end;
finally
TcxCustomButtonGroupProperties(AComponent).Items.EndUpdate;
end;
end;
procedure TcxCustomTreeListControl_ReplaceNodes(ATable:IDataLocate; AComponent:TcxCustomTreeListControl; ACodePage,ASeqNo:String; AFont:TFont);
procedure ReplaceNode(ANode:TcxTreeListNode);
var
i: Integer;
begin
for i:=0 to TcxCustomTreeListControl_Temp(AComponent).ColumnCount-1 do
if VarIsStr(ANode.Values[i]) then
ANode.Values[i] := GetDisplayValue(ATable, ANode.Values[i], ACodePage, ASeqNo);
for i:=0 to ANode.Count-1 do ReplaceNode(ANode.Items[i]);
end;
var
i: Integer;
begin
TcxCustomTreeListControl_Temp(AComponent).BeginUpdate;
try
for i:=0 to TcxCustomTreeListControl_Temp(AComponent).Count-1 do
ReplaceNode(TcxCustomTreeListControl_Temp(AComponent).Items[i]);
finally
TcxCustomTreeListControl_Temp(AComponent).EndUpdate;
end;
end;
procedure Proc_TcxCustomTreeListControl(ATable:IDataLocate; AComponent:TObject; ACodePage,ASeqNo:String; AFont:TFont);
var
i: Integer;
begin
TcxCustomTreeListControl_Temp(AComponent).BeginUpdate;
try
for i:=0 to TcxCustomTreeListControl_Temp(AComponent).Bands.Count-1 do
begin
TcxCustomTreeListControl_Temp(AComponent).Bands[i].Caption.Text :=
GetDisplayValue(ATable, TcxCustomTreeListControl_Temp(AComponent).Bands[i].Caption.Text, ACodePage, ASeqNo);
end;
for i:=0 to TcxCustomTreeListControl_Temp(AComponent).ColumnCount-1 do
begin
TcxCustomTreeListControl_Temp(AComponent).Columns[i].Caption.Text :=
GetDisplayValue(ATable, TcxCustomTreeListControl_Temp(AComponent).Columns[i].Caption.Text, ACodePage, ASeqNo);
end;
finally
TcxCustomTreeListControl_Temp(AComponent).EndUpdate;
end;
end;
initialization
//BarManager相关
AcroClassMethodStorage.RegisterClassMethod(TdxBarManager , Proc_TdxBarManager);
AcroClassMethodStorage.RegisterClassMethod(TdxBarItem , Proc_TdxBarItem);
AcroClassMethodStorage.RegisterClassMethod(TdxBarCustomCombo , Proc_TdxBarCustomCombo);
AcroClassMethodStorage.RegisterClassMethod(TdxCustomDockControl, Proc_TdxCustomDockControl);
AcroClassMethodStorage.RegisterClassMethod(TdxStatusBar , Proc_TdxStatusBar);
//NavBar相关
AcroClassMethodStorage.RegisterClassMethod(TdxNavBarGroup, Proc_TdxNavBarGroup);
AcroClassMethodStorage.RegisterClassMethod(TdxNavBarItem , Proc_TdxNavBarItem);
//OrgChart
AcroClassMethodStorage.RegisterClassMethod(TdxCustomOrgChart, Proc_TdxCustomOrgChart);
//
AcroClassMethodStorage.RegisterClassMethod(TCustomdxTreeListControl, Proc_TCustomdxTreeListControl);
//报表
AcroClassMethodStorage.RegisterClassMethod(TBasedxReportLink, Proc_TBasedxReportLink);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomGrid , Proc_TcxCustomGrid);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomLabel , Proc_TcxCustomLabel);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomComboBox , Proc_TcxCustomComboBox);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomLookupComboBox, Proc_TcxCustomLookupComboBox);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomCheckBox , Proc_TcxCustomCheckBox);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomGroupBox , Proc_TcxCustomGroupBox);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomRadioGroup , Proc_TcxCustomRadioGroup);
AcroClassMethodStorage.RegisterClassMethod(TcxPageControl , Proc_TcxPageControl);
//注册使用到EditRepository的元件
AcroClassMethodStorage.RegisterClassMethod(TcxEditRepositoryItem , Proc_TcxEditRepositoryItem);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomGridTableItem , Proc_TcxCustomGridTableItem);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomInplaceEditContainer , Proc_TcxCustomInplaceEditContainer);
//注册各种EditRepository
AcroClassMethodStorage.RegisterClassMethod(TcxCustomEditProperties , Proc_TcxCustomEditProperties);
AcroClassMethodStorage.RegisterClassMethod(TcxLookupComboBoxProperties , Proc_TcxLookupComboBoxProperties);
AcroClassMethodStorage.RegisterClassMethod(TcxImageComboBoxProperties , Proc_TcxImageComboBoxProperties);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomButtonGroupProperties, Proc_TcxCustomButtonGroupProperties);
AcroClassMethodStorage.RegisterClassMethod(TcxCustomTreeListControl, Proc_TcxCustomTreeListControl);
finalization
AcroClassMethodStorage.UnRegisterClassMethod(TdxBarManager);
AcroClassMethodStorage.UnRegisterClassMethod(TdxBarItem);
AcroClassMethodStorage.UnRegisterClassMethod(TdxBarCustomCombo);
AcroClassMethodStorage.UnRegisterClassMethod(TdxCustomDockControl);
AcroClassMethodStorage.UnRegisterClassMethod(TdxStatusBar);
AcroClassMethodStorage.UnRegisterClassMethod(TdxNavBarGroup);
AcroClassMethodStorage.UnRegisterClassMethod(TdxNavBarItem);
AcroClassMethodStorage.UnRegisterClassMethod(TdxCustomOrgChart);
AcroClassMethodStorage.UnRegisterClassMethod(TCustomdxTreeListControl);
AcroClassMethodStorage.UnRegisterClassMethod(TBasedxReportLink);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomGrid);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomLabel);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomComboBox);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomLookupComboBox);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomCheckBox);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomGroupBox);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomRadioGroup);
AcroClassMethodStorage.UnRegisterClassMethod(TcxPageControl);
AcroClassMethodStorage.UnRegisterClassMethod(TcxEditRepositoryItem);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomGridTableItem);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomInplaceEditContainer);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomEditProperties);
AcroClassMethodStorage.UnRegisterClassMethod(TcxLookupComboBoxProperties);
AcroClassMethodStorage.UnRegisterClassMethod(TcxImageComboBoxProperties);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomButtonGroupProperties);
AcroClassMethodStorage.UnRegisterClassMethod(TcxCustomTreeListControl);
end.