Acro Multi-Language Class-Method for Devexpress VCL
( 不能附文件,请包涵,自己贴下成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.
Acro Multi-Language Class-Method for Devexpress VCL相关推荐
- Devexpress VCL Build v2014 vol 14.1.4 发布
虽然这次没加什么新东西,但是及时更新支持xe7,还算可以. What's New in 14.1.4 (VCL Product Line) New Major Features in 14.1 Wha ...
- VCL界面控件DevExpress VCL Controls发布v18.2.5|附下载
DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...
- DevExpress VCL Controls v15.1.5正式发布[附下载]
2019独角兽企业重金招聘Python工程师标准>>> DevExpress VCL Controls是Devexpress公司旗下用户界面产品套包,包含该公司所有VCL控件产品和 ...
- Devexpress VCL Build v2014 vol 14.2.6 发布
终于支持XE8 了.需要这么长时间吗? New Major Features in 14.2 What's New in VCL Products 14.2 Feature Highlights To ...
- DevExpress VCL for Delphi 各版本收集下载(最新支持Delphi 10.3.3 RIO)
点此下载 最新更新: DevExpress VCL 18.1.6 Full Sources 下载包含以下内容: DevExpress VCL for Delphi 帮助文档,CHM格式: DevExp ...
- DevExpress VCL 一键安装工具
一键安装工具 DxAutoInstaller-2.1.3 For Devexpress VCL:http://download.csdn.net/detail/wozengcong/8396181 一 ...
- VCL界面控件DevExpress VCL发布v20.2.5
DevExpress技术交流群3:700924826 欢迎一起进群讨论 DevExpress VCL Controls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据 ...
- VCL界面组件DevExpress VCL v22.2 - 拥有全新的矢量图形
DevExpress VCL是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入.图表.数据分析.导航.布局等.该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并 ...
- DevExpress VCL for Delphi 各版本收集下载
更多VCL组件请到:http://maxwoods.400gb.com/u/758954/1974711 DevExpress VCL 5.7:http://www.ctdisk.com/file/7 ...
- DevExpress VCL for Delphi 各版本收集下载(最新支持Delphi XE 7)
DevExpress VCL for Delphi 帮助文档,CHM格式: http://maxwoods.400gb.com/u/758954/6239515 DevExpress VCL 5.7: ...
最新文章
- l#039;oracle 酒,【金钟庄园副牌干红葡萄酒Carillon de L#039;angelus】价格_年份_评分 - 酒窝网官网...
- 3月29日 如何在winform中加入动态系统时间
- rabbitmq 在centos下的安装
- oracle表分区设计_ORACLE 分区表的设计
- launch edge 和 latch edge 延迟以及静态时序分析相关概念
- SqlSession介绍
- git 的sshkeys生成方法以及上传代码鱼git
- LVGL『Roller滚轮控件』介绍
- 鸿蒙系统官网电脑版,华为鸿蒙系统官方pc版下载-华为鸿蒙系统官方电脑pc版 -优盘手机站...
- 车牌识别及提取系统MATLAB,车牌识别系统设计及MATLAB仿真
- ObjectARX如何打开一个dwg文件
- 用python自动制作ppt第二讲——插入文字的两种方法和追加文字
- java面试基础题整理(二)
- React.js学习(一):设计并实现一个“任务清单列表”
- homelede软路由设置方法_二级lede软路由设置方法,lede设置软路由网卡
- Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台
- 详解JSP 中Spring工作原理及其作用
- 什么是BOSS业务?
- Linux下Oracle开机自启动
- oracle数据库dmp文件查看,查看oracle数据库dmp文件的字符集信息