分享
 
 
 

Delphi 6 新特性-VCL单元变化及特性(中文)

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Delphi 6 新特性

原著:Borland Corporation

翻译:Musicwind®

开始日期:2001-07-13

结束日期:2001-07-14 (完成VCL单元变化及特性)

声明:

以下文章的内容取自Delphi 6附带的帮助文件。

版权所有Borland Corporation。

翻译此稿事先没有得到Borland的批准,鲁莽之处,恳请Borland多多原谅。

有什么新鲜的?

Delphi 6新增了一些特性并增强了原有的功能,主要有以下几个方面:

IDE(整合开发环境)

Internet

XML(扩展标记语言)

Compiler(编译器)

COM/Active X

Database support(数据库支持)

CORBA

Actions(动作)

Custom Variants(可定义的可变类型)

VCL 单元和特性

RTL单元和特性

Cross-platform development(跨平台开发)

Translation tools(翻译工具)

Deployment changes(发布机制)

Help system extensibility(扩展的帮助系统)

注意:某些特性不是所有Delphi版本都有。

VCL单元及特性

新的VCL单元以及新的特性(所有版本)

新增组件:

TLabeledEdit

TLabeledEdit是ExtCtrls.pas单元中新增加的,它演示了如何使用子组件。TLabeledEdit是一个带有标签的编辑控件。标签(Label)是这个控件的属性之一。

TValueListEditor

ValueListEditor 是一个自定义的栅格组件,它使用TStrings保存键/值配对。它的工作方式类似于对象检视器(Object Inspector)。

TComboBoxEx

TComboBoxEx是一个新的组合框控件,它允许在列表文字的旁边出现图片。

TColorBox

TcolorBox是一个新的组合框组件,用来选择各种颜色。

改进的特性包括:

大多数窗口控件(WindowControl)都发布了以下Bevel相关属性:

BevelEdges

BevelInner

BevelOuter

BevelKind

BevelWidth

子组件(Subcomponents)

现在,组件可以拥有创建子组件的其他组件。举例来说,一个组件可以有一个组件引用的属性,这个被引用的组件,可以是内部的(也就是一个子组件),也可以是外部的(普通的组件引用)。如果引用的是内部的组件,则这个子组件的不被Form所拥有,而是被放置在Form上的组件所拥有。这意味着组件可以将其内部的子组件发布出来,并且能够被正确的流化。并且,对象检视器已经被修改为支持查看组件内部的子组件属性(比如Font属性)。要创建一个有子组件的组件,需要调用TComponent.SetSubComponent方法。

可发布的接口属性(Publishable interface properties)

接口属性(该属性的类型是一个接口)现在已经可以被发布,当且仅当这个接口的实现的类是一个可以流化的组件。

这意味着现在你可以在对象检视器中看到接口类型的属性,并且将会出现一个支持此接口的组件列表以供选择。

新增单元及变动

CheckLst.pas

TcheckListBox增加了几个新的属性,包括AutoComplete,HeaderColor以及HeaderBackGroundColor。

Classes.pas

TList有一个新的Assign方法,不仅完成拷贝功能,也支持一些简单的集合操作。

TCollection新增两个受保护的方法,用来允许派生的类对于增加和删除条目的操作作进一步的处理。这两个新方法是Added和Deleting,两者都没有缺省的实现。为了保持TCollection的精简,没有增加OnAdded和OnDeleting事件。然而,在派生类中却很容易实现这些。此外,TCollection新增一个Owner属性以便对拥有者进行标识。

TStringList新增属性CaseSensitive(大小写敏感),允许你控制子串列表的各项操作(排序,匹配)是否大小写敏感。

TDataModule从Forms单元移到现在这个单元中(Classes.Pas),去处了对可视化控件的依赖。这使得你可以在不包含用户界面的情况下写出更小的服务段应用。

Thread新增FatalException属性,以标识任何导致线程正常运行的异常。

TStream重载了Seek(搜索)函数,允许Int64类型的值来标识位置。派生的类可以覆盖其中一个重载,但不能覆盖所有。

TinterfacedPersistent是一个新的持久对象的基类,不是组件,但是可以实现接口。

ComCtrls.pas

TtreeView的CreateTreeNodes方法是新增加的。

简单的节点的创建,并且增加了一个事件,使得Tree的使用这不必为了要覆盖节点的类而去重新创建一个派生类。并且AddNode也作了修改,让你可以将你想要加入的节点(任何类型)传递给它。

增加一个OnAddition事件,该事件在节点被增加时触发。

TreeView的排序Api作了增强(功能上)和简化(使用上)。现在你可以对子树进行递归排序,对顶层节点进行非递归的排序。TCustomTreeView和TTreeNode类现在对AlphaSort和CustomSort提供了一致的定义,并且这些方法同时被增加到TTreeNodes中。所有的改动都是后台的,与前一版本保持兼容。

增加MultiSelect(多选)相关四个属性以及八个方法。

TListView新增了CreateListItems方法,该方法与TTreeView的CreateTreeNodes类似。

TStatusBar-可调整大小的夹子现在可以显示,即使状态栏的父亲不直接是Form。只要状态条的右下角处于Form的右下角位置,则该夹子显示。

TDateTimePicker新增Format属性,用于控制日期值的显示方式。

THeaderControl新增许多新的属性和事件以支持列的拖放。一个新属性HotTrack允许当用户的鼠标在顶部区域上停留时,该区域以高亮显示。

TToolBar新增Menu属性,可以自动在工具条上添加与Menu的菜单项对应的许多按钮。当用户使用定制对话框来定制工具条时,会有一系列的事件触发。

Contnrs.pas

Last(最后)和First(最先)两个函数(属性)被增加到TObjectList,TComponentList以及TClassList中。这些函数的返回值依类的不同而不同。

TStack(栈),TQueue(队列),TObjectStack(对象栈)以及TObjectQueue(对象队列)的Push现在改为一个函数,简单的返回被推入到栈(或者队列)中的对象。就像推入,然后查看一样。当要推入在推入时刚创建的对象时,这一点非常有用(译者注:其实这一点,Borland应该早就考虑到才是!)。

TBucketList和TObjectBucketList是简单的哈希表。

Controls.pas

TCustomListControl是一个新的公用基类,用于表达一组条目的列表控件(比如组合框,列表框和列表视图等)。它引入了一些新的方法用于操纵将要被子孙类继承的列表。

TDragObjectEx,TDragControlObjectEx以及TDragDockObjectEx是三个新的拖拽对象,拖拽操作结束后,它们可以自动释放。他们对应于TDragObject,TDragControlObject和TDragDockObject,区别在于老的版本不能够在拖放操作完成时自动释放。

TControl新增两个方法:ClientToParent和ParentToClient,用来在父亲与子女之间换算坐标。工作方式与ClientToScreen和ScreenToClient类似。

TWinControl新增一个重载的方法PaintTo,参数改为Canvas(画布)而非HDC(设备描述表句柄)。

TModalResult被移至Forms.pas中。此外,增加以下几个支持函数:

function IsPositiveResult(const AModalResult: TModalResult): Boolean;

function IsNegativeResult(const AModalResult: TModalResult): Boolean;

function IsAbortResult(const AModalResult: TModalResult): Boolean;

function IsAnAllResult(const AModalResult: TModalResult): Boolean;

function StripAllFromResult(const AModalResult: TModalResult): TModalResult;

DbCtrls.pas

TDBLookupListBox和TDBLookupComboBox新增NullValueKey属性,允许用户使用空值(Null)赋值。

TDBComboBox新增AutoComplete(自动完成)和AutoDropDown(自动下拉)属性。

TDBListBox也新增AutoCompelete属性。

TOpenDialog新增OptionsEx属性(译者注:该属性用来设置是否出现win2000特有的位置工具条),同样,保存对话框也新增此属性。

ExtCtrls.pas

TImage-Proportional(比例)属性被增加,用于控制图像的高宽比而不论图像控件的尺寸如何。

Forms.pas

TApplication(以及TApplicationEvents)新增OnSettingChange事件,用来通知系统设置的改变。

TForm新增AlphaBlend,AlphaBlendValue,TransparentColor以及TransparentColorValue等属性以支持分层的Form。

TScreen提供了获取桌面工作区大小的一系列属性(WorkAreaRect,WorkAreaTop,WorkAreaLeft,WorkAreaHeight,WorkAreaWidth)。另外,还有一系列的新方法允许你定位哪个监视器更加与点,矩形,或者窗口相匹配。

TMonitor扩展了多监视器的支持,提供了当前的主监视器,WorkareaRect以及BoundsRect等属性。

新增AutoDragDocking(自动停靠)支持。这一特性允许你关闭应用程序的自动停靠功能。另外,在Delphi的选项设置对话框中允许你修改这么一个标志。

TModalResult声明被移到Control.pas单元中。

Graphics.pas

新增TFontRecall, TPenRecall 和 TBrushRecall三个新类,允许你快速存取font(字体),pen(画笔)和

brush(刷子)。他们均从TRecall(在Classes单元中声明)派生而来,TRecall需要与TPersistent一起使用。

系统颜色经过排序便于查找。

在原先16种颜色的基础上新增4个:

clMoneyGreen

clSkyBlue

clCream

clMedGray

ImgList.pas

Draw,DrawOverlay和GetIcon方法均被加上Overload(重载)标记,便于你覆盖图像列表的属性设置。

IniFiles.pas

Ini文件开始支持使用流读写二进制数据。

TMemIniFile支持控制子串是否大小写敏感。

THashedStringList是一个新的TStrings的派生类,使用内部的哈希(杂凑)表提高访问速度。

Masks.pas

EditMask(掩码编辑框)和文本使用自定义类型因此他们的属性编辑器更加有用。

Menus.pas

TMenuItem增加一个AutoCheck(自动标记)属性,用来标记当用户点及菜单条目时,是否自动在已经标记和未标记之间切换。

Registry.pas

TRegistry开始支持使用流读写二进制数据。

StdCtrls.pas

OnCloseUp和OnSelect事件被增加到TCustomComboBox中(TComboBox也一样)。OnCloseUp事件在组何况的下拉列表关闭时触发(与OnDropDown触发的时机相反)。OnSelect在列表的东西被选中时触发(或者当上下滚动可选值时使得组合框的内容被改变时)。组合框新增AutoCompelete属性,缺省为True。

TListBox新增对两个风格的属性:lbVirtual和lbVirtualOwnerDraw。两个风格用于支持虚的列表框,即不保存任何条目。通过设置Count属性可以指定条目的个数,然后在OnData,OnDataFind,和OnDataObject事件中提供条目(以及相关的对象)。

TypInfo.pas

现在调用对象的GetPropInfo方法是安全的了。假如对象没有任何RTTI信息,则简单的返回nil。

增加FreeAndNilProperties。它将释放(free)并且置空(nil)支持RTTI的对象的所有对象属性。注意它将对所有的对象,包括引用的对象进行此项操作,所以最好先将被引用的对象释放,置空。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有