VCL组件之重要的公用属性
所有的组件都有某些公用的属性。例如所有的可视化组件都有Left和Top属性,它决定了组件在窗体上的位置。像Left、Top、Height及Width属性都是不言自明的,在此就不重复了。然而有几个公用属性值得稍微仔细地探讨。
Align(对齐)属性
在前面的讲解Form Designer中已经讨论了Align属性,就不要重复讨论了。
Color(颜色)属性
设置组件的背景颜色(文本的颜色通过Font属性设置)。虽然Color属性用起来简单,但是有关组件颜色的几个方面需要指出。
在Object Inspector中处理Color属性的方式有些特殊。如果点击Color属性的Value栏,就会看到下拉颜色列表。
如果双击Value栏,会弹出Color对话框。此对话框能从基本颜色中选择,或者点击“规定自定义颜色”按钮来建立自定义颜色。如下图:
Note
如果在应用程序中实现了ColorDialog组件,就会出现相同的Color对话框。
如果从Color对话框中选择了一种颜色,会看见Color属性的值改变为十六进制字符串。这个字符串代表了构成颜色的红、绿、蓝(RGB)的值。如果知道颜色的确切RGB值,可把它输入进去。
多数情况是从提供的颜色值表中选择颜色。当点击下拉按钮来显示可能值列表时,会看到总共有两组值。
- 第一组颜色从clBlack到clMedGray。Delphi预定义颜色,这个代表了最常用的颜色。要选出颜色中的一种,只要点击表中的颜色。如果在表中找不到适合需要的颜色,可以激活Color对话框自己选择颜色。
- 第二组颜色从clActiveBorder开始。这组颜色表示窗口系统颜色。如果使用此表中的颜色,在用户改变系统窗口颜色时,应用程序会自动调整它的颜色。正确使用颜色为用户提供愉悦环境。
Cursor(光标)属性
Cursor属性控制着用户在组件上移动的鼠标光标。窗口对某些组件自动改变光标。例如,当光标在Edit、Memo或RichEdit组件上移动时,光标变成I形状光标。
要使Windows管理光标,将Cursor属性设置为crDefault。如果有专用的窗口(组件),就指定其中一个光标。当鼠标移动到那个组件上时,Windows改变光标为指定的那个。
通常,需要在运行阶段改变光标,例如,长时间的处理应该显示沙漏光标来提醒用户。当重新设置光标时,要保证其能回到开始状态。例如下面的代码说了此概念。
var OldCursor: TCursor; begin OldCursor := Screen.Cursor; Screen.Cursor := crHourGlass; { 做一些长时间的处理工作} Screen.Cursor := OldCursor; end;
这就保证了为应用程序能回到最初状态的光标。
另一个光标属性是DragCursor,用于设定在支持拖放的组件上时显示的光标。对于颜色,在光标上使用要审慎而行,可在需要时使用定值光标,但不能过多使用。
Enabled(允许)属性
通过Enabled属性,组件可成为允许的或屏蔽的。当组件被屏蔽时,它不能接受输入焦点(点击它时没有用)。例如,按钮在屏蔽下文本变灰,并且无法点击,如下图:
Enabled属性是Boolean类型,设置为True使组件为允许,设置为False使组件屏蔽。允许与屏蔽窗口是Windows本身特性。
Note
某些组件在设计阶段显示它们的屏蔽状态,但为数不多。BitBtn组件就是在设计阶段显示其屏蔽状态的。
Enabled属性大多应用于窗口组件(windowed components),也可用于非窗口(Non-windowed components)。SpeedButton组件是可以屏蔽的非窗口组件的例子。
Note
改变Panel组件的Enabled属性有另外提示。面板(Panel)常作为其他控件的容器,因此面板称为安放在面板上控件的父控件。如果屏蔽面板,面板上的组件不会显示被屏蔽了,它不起作用因为其父控件(Panel)被屏蔽了。
尽管组件可在设计阶段被屏蔽,但更常在运行阶段进行组件的允许和屏蔽操作。例如,Menu菜单项根据给定期间它们是否应用来确定是允许还是屏蔽的。
要在运行阶段屏蔽组件,将其Enabled属性赋值False,要允许组件将Enabled属性赋值True。下述代码基于某些条件允许或屏蔽菜单项:
if CanSave then FileSave.Enabled := True else FileSave.Enabled := False;
这个过程经常被称为command enabling,是专业Windows程序的重要部分。
Tip
TActionList组件用于允许或屏蔽组件或组件组。在以后的讲解中会讨论到TActionList。
Font(字体)属性
Font属性是TFont类的实例,因此有其自身的属性。在Object Inspector中双击Font属性Value栏弹出字体对话框来设置字体。
Font属性扩展节点后,包括的属性有:
Color属性设置字体的颜色。
Name属性设置字体名称。
TFont中的Height和Size属性也值得特别提出:
- Height属性指定字体的像素高度。
- Size属性用于指定字体的高度(单位:磅)
当改变Height和Size的其中一个时,另个也会自动改变。Height属性通常为负数,TFont的在线帮助可以解释为什么这样。
字体可以成比例大小或固定大小。
- 大多数字体是成比例大小的(proportionally spaced),这意味着每个字母只占需要的空间。比如大写M比小写z占用更多的控件。成比例字体例如,Times New Roman,Arial及Bookman。
- 固定大小(fixed space )字体( 固定字距fixed-pitch字体),是所有字符占有相同的空间。这对于Code Editor或其他需要固定字距字体的窗口来说是方便的。Courier New可能是最普遍使用的固定字距字体,尽管Fixedsys是某些窗口应用程序选择的窗口固定字距字体。固定大小字体很难读,通常不应用于长块的文本,而用于代码。
理论上,Pitch属性用于将成比例空间字体转化为固定空间字体或反之。而问题是Windows执行字体代换来实现转化,换句话说,不知道将得到什么。因此最好选需要的字体而不依赖于Pitch属性。
最后TFont的Style属性包括黑体、斜体、下划线和删除样式。这些样式可以混合使用。
Hint(提示)属性
Hint属性用于给组件设置提示文本。Hint文本两部分:
- 第一部分称作短提示(short hint),当用户把光标放在组件上并停止时显示的提示文本。弹出的提示信息的窗口称作tooltip。
- 第二部分称为长提示(long hint),它是可选择性提示文本,当用户在组件上移动光标时它显示在状态栏中。短提示与长提示用管道号(|)分隔开。例如指定“File Open”的SpeedButton,可以指定其Hint属性为:
File Open | Open a file for editing
为了显示短提示,必须将Application对象的ShowHint属性为True(此为缺省值),也要把组件的ShowHint设置为True。显示在状态栏的长提示需要多一些工作,留到以后讨论。
Note
你可以指定短提示文本,长提示文本或两者,使用管道号来告诉Delphi要使用哪种提示文本。若不用管道号,则短提示和长提示都使用相同的文本。
Note
尽管对长提示或短提示的长度没有限制,应在建立它们时记住每个提示的使用。短提示应限制在30个字符或更短,长提示应更具有描述性,但要记住,如果长提示太长,在状态栏显示时会被剪短。
ParentColor、ParentCtl3D、ParentFont及ParentShowHint属性
Note
Ctl3D属性设置控件的3D或者2D显示效果。
这些属性都以系统的方式工作,因此一起讨论。当把它们设置为True时,组件可从其父组件中继承其Color、Ctl3D、Font和ShowHint属性设置。例如,对大部分组件,其ParentFont属性缺省值为True,这指组件继承其父组件使用的字体属性。下面做个联系,好好去理解下。
(1)建立一个空窗体,设置其Font属性的Size属性为16。
(2)在窗体上放置一个Label组件,注意此时Label的Font属性的Size属性自动使用16磅。
(3)在窗体上放置Button组件,它也使用16磅字体大小。
此时把此属性设置为False,但组件已经安放好了,就必须要手动改变组件的字体。
Tag属性
Tag属性就是一个四字节的变量,你可以用此属性存储此组件所需的任何数据。此数据可能是指向类的指针,索引值或者其他数字。使用Tag属性是一种高级编程技术。
其他公用属性
这些属性不需要更多的解释,它们列在这里作一参考。不是所有组件都有表中列出的每个属性。
- BorderStyle 可以是bsSingle或者bsNone,bsNone用于使组件与背景融合在一起。
- BoundsRect 定义控件边框矩形(只适合于运行时)
- Caption 控件的标题
- ClientHeight 组件用户区的高度
- ClientWidth 组件用户区的宽度
- ClientRect 组件用户区矩形
- Constraints 在改变大小操作期间限定控件(或窗体)的最大与最小尺寸
- Ctl3D 确定控件是否具有三维效果
- Height 控件的高度
- HelpContext 用于激活上下文相关帮助的上下文数值
- Left 组件左上角的水平坐标
- Parent 表示父控件(只适用于运行时)
- PopupMenu 当用户在控件上点击鼠标右键时出现的弹出式菜单
- TabOrder 确定父控件的切换顺序
- TabStop 确定用户是否可以使用Tab键移动控件
- Top 组件左上角的垂直坐标(y坐标)
- Visible 确定控件是否可视,读此属性,提示控件是否当前可见;写此属性,隐蔽或显示控件
- Width 控件的宽度
posted on 2012-01-21 17:32 pchmonster 阅读(2106) 评论(2) 编辑 收藏 举报