当前位置:首页 > 网络编程 > 软件语言 > DELPHI > Delphi5的控件升级到Delphi6

Delphi5的控件升级到Delphi6

点击次数:38 次 发布日期:2008-11-09 08:38:40 作者:源代码网
源代码网推荐
广告载入中
其实把属性编辑器等引用DesignEditors的部分,如属性编辑器的声明、实现以及属性编辑器的注册另写一个单元就行了。
源代码网推荐 下面是一个简单的例子
源代码网推荐
源代码网推荐 unit NWDictTreeViewReg;
源代码网推荐
源代码网推荐 interface
源代码网推荐
源代码网推荐 uses
源代码网推荐 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
源代码网推荐 ComCtrls, Db, DbTables, DesignIntf, DesignEditors;
源代码网推荐
源代码网推荐 type
源代码网推荐 TNamePropertyEditor = class(TPropertyEditor)
源代码网推荐 public
源代码网推荐 function GetAttributes: TPropertyAttributes; override;
源代码网推荐 function GetValue: string; override;
源代码网推荐 procedure SetValue(const Value: string); override;
源代码网推荐 end;
源代码网推荐
源代码网推荐 TDatabaseNameProperty = class(TNamePropertyEditor)
源代码网推荐 public
源代码网推荐 procedure GetValues(Proc: TGetStrProc); override;
源代码网推荐 end;
源代码网推荐
源代码网推荐 TTableNameProperty = class(TNamePropertyEditor)
源代码网推荐 public
源代码网推荐 procedure GetValues(Proc: TGetStrProc); override;
源代码网推荐 end;
源代码网推荐
源代码网推荐 TFieldNameProperty = class(TNamePropertyEditor)
源代码网推荐 public
源代码网推荐 procedure GetValues(Proc: TGetStrProc); override;
源代码网推荐 end;
源代码网推荐
源代码网推荐 procedure Register;
源代码网推荐
源代码网推荐 implementation
源代码网推荐
源代码网推荐 uses NWDictTreeView;
源代码网推荐
源代码网推荐 procedure Register;
源代码网推荐 begin
源代码网推荐 RegisterComponents("NoctWolf DB", [TNWDictTreeView]);
源代码网推荐 RegisterPropertyEditor(TypeInfo(string), TNWDictTreeView, "DatabaseName", TDatabaseNameProperty);
源代码网推荐 RegisterPropertyEditor(TypeInfo(TFileName), TNWDictTreeView, "", TTableNameProperty);
源代码网推荐 RegisterPropertyEditor(TypeInfo(TFieldName), TNWDictTreeView, "", TFieldNameProperty);
源代码网推荐 end;
源代码网推荐
源代码网推荐 function TNamePropertyEditor.GetAttributes: TPropertyAttributes;
源代码网推荐 begin
源代码网推荐 Result := [paValueList, paSortList, paAutoUpdate];
源代码网推荐 end;
源代码网推荐
源代码网推荐 function TNamePropertyEditor.GetValue: string;
源代码网推荐 begin
源代码网推荐 Result := GetStrValue;
源代码网推荐 end;
源代码网推荐
源代码网推荐 procedure TDatabaseNameProperty.GetValues(Proc: TGetStrProc);
源代码网推荐 var
源代码网推荐 NameStrings: TStrings;
源代码网推荐 i: Integer;
源代码网推荐 begin
源代码网推荐 NameStrings := TStringList.Create;
源代码网推荐 try
源代码网推荐 Session.GetDatabaseNames(NameStrings);
源代码网推荐 for i := 0 to NameStrings.Count - 1 do
源代码网推荐 begin
源代码网推荐 Proc(NameStrings[i]);
源代码网推荐 end;
源代码网推荐 finally
源代码网推荐 NameStrings.Free;
源代码网推荐 end;
源代码网推荐 end;
源代码网推荐
源代码网推荐 procedure TNamePropertyEditor.SetValue(const Value: string);
源代码网推荐 begin
源代码网推荐 if GetStrValue <> Value then SetStrValue(Value);
源代码网推荐 end;
源代码网推荐
源代码网推荐 procedure TTableNameProperty.GetValues(Proc: TGetStrProc);
源代码网推荐 var
源代码网推荐 NameStrings: TStrings;
源代码网推荐 i: Integer;
源代码网推荐 begin
源代码网推荐 NameStrings := TStringList.Create;
源代码网推荐 try
源代码网推荐 Session.GetTableNames((GetComponent(0) as TNWDictTreeView).DatabaseName, "*.*", False, False, NameStrings);
源代码网推荐 for i := 0 to NameStrings.Count - 1 do
源代码网推荐 begin
源代码网推荐 Proc(NameStrings[i]);
源代码网推荐 end;
源代码网推荐 finally
源代码网推荐 NameStrings.Free;
源代码网推荐 end;
源代码网推荐 end;
源代码网推荐
源代码网推荐 procedure TFieldNameProperty.GetValues(Proc: TGetStrProc);
源代码网推荐 var
源代码网推荐 NameStrings: TStrings;
源代码网推荐 i: Integer;
源代码网推荐 TempTable: TTable;
源代码网推荐 begin
源代码网推荐 NameStrings := TStringList.Create;
源代码网推荐 TempTable := TTable.Create(GetComponent(0) as TNWDictTreeView);

源代码网推荐 try
源代码网推荐 TempTable.DatabaseName := (GetComponent(0) as TNWDictTreeView).DatabaseName;
源代码网推荐 if (GetName = "DictRelationParentCodeFieldName") or
源代码网推荐 (GetName = "DictRelationCodeFieldName") then
源代码网推荐 TempTable.TableName := (GetComponent(0) as TNWDictTreeView).DictRelationTableName
源代码网推荐 else
源代码网推荐 TempTable.TableName := (GetComponent(0) as TNWDictTreeView).DictTableName;
源代码网推荐 TempTable.GetFieldNames(NameStrings);
源代码网推荐 for i := 0 to NameStrings.Count - 1 do
源代码网推荐 begin
源代码网推荐 Proc(NameStrings[i]);
源代码网推荐 end;
源代码网推荐 finally
源代码网推荐 TempTable.Free;
源代码网推荐 NameStrings.Free;
源代码网推荐 end;
源代码网推荐 end;
源代码网推荐
源代码网推荐
源代码网推荐 end.
源代码网推荐 当然,也有一些没这么容易,如 TCollectionEditor, TDesignWindow 等,原来的虚拟方法都变了。你可以试试升级 EhLib。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华