Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18680695
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-31 14:58:47

2.4.12 VCL标准组件
    组件面板中包含能够处理多种程序设计任务的组件。你可以在组件面板中增加、删除或重新排列组件,还能创建由几个组件组成的“模板(templates)”和“框架(frames)”。
    组件面板中的组件根据功能用途分页安排。在缺省配置中出现哪些页面取决于所运行的C++Builder的版本。表2-1列出了典型的缺省页及其包含的组件种类。



    联机帮助提供关于缺省组件面板组件的信息。对于ActiveX及Samples页中的组件,只提供例子而没有文档。
    1、文本控件
    许多应用程序都需要显示文本或允许用户输入文本。用于此类用途的控件,其类型依赖于信息的多少及格式(见表2-2)。

 
    (1)文本控件共同属性
    所有的文本控件都具有这些共同属性:
· Text,确定出现在编辑框或备注控件中的文本
· CharCase,强制文本以小写或大写输入。
· ReadOnly,指定是否允许用户修改文本。
· MaxLength,限制控件中的字符数。
· PasswordChar,通过显示单个字符(通常是星号)隐藏文本。
· HideSelection,指定控件中被选中的文本是否在控件失去焦点时依然保持高亮状态。
    (2)备注和Richtext控件共享的属性
    处理多行文本的备注和Richtext控件有一些共同的属性:
· Alignment,指定文本在控件内的对齐方式。
· Text,属性指定控件中包含的文本。应用程序通过检查Modify属性可以识别文本是否被修改。
· Lines,包含诸如串列表的文本。
· OEMConvert,确定是否在输入文本临时将其从ANSI转换为OEM字符。这对检查文件名很有用。
· WordWrap,确定是否文本在右边缘换行。
· WantReturns,确定是否允许用户在文本中插入硬回车。
· WantTabs,确定是否允许用户在文本中插入Tab。
· AutoSelect,确定是否当控件激活时自动选中(高亮)文本。
· SelText,包含文本的当前选中(高亮)部分。
· SelStart和SelLength,指明文本选中部分的位置和长度。
    在运行时,可用SelectAll方法将备注中文本全部选定。
    (3)Richtext控件
    Richtext控件是支持Richtext格式化、打印、搜索及拖放文本的备注控件。它允许你指定字体属性、排列方式、Tabs、缩进、及数字编号。
    2. 特殊的输入控件
    表2-3中的组件提供捕获输入的附加方式。



    (1)滚动条
    滚动条组件是用于滚动窗口、窗体或控件的内容的滚动条。在OnScroll事件处理程序当中编写代码响应用户移动滚动条的动作。
     滚动条组件并不经常使用,因为许多可视化组件都提供自己的滚动条,而且不需要附加的代码。例如,TForm提供VertScrollBar和HorzScrollBar属性自动配置窗体滚动条。使用TScrollBox可创建窗体内部的一个可滚动区域。
    (2)刻度条控件
    使用可以设置一连续范围的整数值。在调整像颜色、音量和亮度等属性值时很有用。拖动游标至目标位置或直接在刻度条控件内部的目标位置单击,都可使游标到达目标位置。
· 用Max和Min属性值来设定刻度范围的上下限值。
· 用SelEnd和SelStart来高亮显示选定范围。见图2-2。
· Orientation属性确定刻度条是垂直的还是水平的。
· 缺省时,刻度条底部有一行刻度。使用TickMarks属性可改变其位置。用TickStyle属性和SetTicks方法可控制刻度间隔。

 
· Position设置刻度条初始位置,同时也可记录运行时刻度条位置。
· 缺省时,用户可通过上下箭头键向上或向下移动一个刻度间隔。LineSize用来改变增量。
· PageSize设置当用户按下PageUp或PageDown时,刻度条移动的刻度数。    (3)上下控件
    上下控件(UpDown)由一对箭头按钮组成,允许用户以一固定增量来改变整数值。当前值由Position属性给出;Increment属性设置增量大小,缺省时为1。使用Associate属性可把其他组件(比如一个编辑控件)与上下控件联系起来。
    (4)热键控件
    使用热键组件(HotKey)可将一个快捷键(用于转移焦点)分配给任何控件。HotKey属性包含当前快捷键组合,Modifiers属性确定哪些键对于HotKey是可用的。
    (5)分隔符控件
    位于排列好的控件之间的分隔符控件允许用户重新调整控件大小。与面板或分组框这类组件一起使用时,分隔符控件可把一个窗体分成若干块,每块中都包含多个控件。
    在窗体中放置一面板或其他控件后,以与该控件相同的对齐方式加入一个分隔符控件。最后加入的控件应是客户区对齐(client-aligned)方式的,以便当其他控件调整大小后它可以自动填充剩余空间。
    例如:把一个面板放在窗体左边,把它们Alignment属性设置为alLeft,再把一个分隔符控件(对齐方式同样为alLeft)放在面板右边,最后将另一面板(对齐方式为alLeft或alClient)放在分隔符控件右边。
    MinSize属性指定当调整相邻控件大小时,分隔符控件必须保留的最小尺寸。设置Beveled为true可使分隔符控件的边缘呈现3D效果。

 3.按钮控件及类似控件
    除了菜单以外,按钮是在应用程序中触发命令最常用的方式。C++Builder提供一些按钮控件及类似控件(见表2-4):



    (1)按钮控件
    用户单击按钮控件(Button)触发动作。在设计时双击按钮将跳至代码编辑器中该按钮的OnClick事件处理程序。
· 将Cancel属性设置为true,则当用户按下Esc键时,触发按钮的OnClick事件。

· 将Default属性设置为true,则当用户按下Enter键时,触发按钮的OnClick事件。
    (2)位图按钮
    位图按钮(BitBtn)是带有图形的按钮控件。
· 设置Glyph属性可为按钮选择一个位图。
· 使用Kind属性可自动配置一个带有图形的缺省按钮。
· 缺省时,图形出现在正文的左边。若要移动它,使用Layout属性。
· 按钮中的图形和文本会自动居中。使用Margin属性可移动它们的位置。Margin属性决定图形边缘和按钮边缘的像素点数。
· 缺省时,图形和文本间隔4个像素点。使用Spacing可增减该距离。
· 位图按钮有3种状态:弹起、按下、保持按下。将NumGlyphs属性设为3可显示每种状态的不同图形。
    (3)快速按钮
    快速(Speed)按钮(SpeedButton),通常带有图形,可加入组中。通常和面板一起用来创建工具栏。
· 为让快速按钮成组工作,可将所有按钮的GroupIndex属性值设置为相同的非零值。
· 缺省时,快速按钮以弹起(未选中)状态显示。若需开始就将快速按钮显示为选中状态,可将Down属性设为true。
    若AllowAllUp属性值为true,在一个组中所有的快速按钮均为未选中状态。若AllowAllUp属性值为false,这组快速按钮以单选按钮组的模式工作。
    (4)复选框
    复选框(CheckBox)提供给用户两个或更多选择。
· 把Checked属性设为true,复选框中会出现记号表示选中状态。
· 将AllowGrayed设为true使复选框具有三种可能的状态:选中、非选中、灰的(不可选)。
· State属性指出复选框状态为选中(cbChecked)、非选中(cbUnchecked)、灰的(cbGrayed)。
    (5)单选按钮
    单选按钮(RadioButton)给出一组互斥的选项。可使用单个的单选按钮,也可使用RadioGroup组件,它自动安排成组的单选按钮。
    (6)工具栏
    工具栏(ToolBar)组件提供一种管理可视化控件的简易方法。你可以用面板组件和快速按钮创建工具栏,也可使用工具栏组件,然后右击并选择NewButton来把按钮加到工具栏上。工具栏组件有许多优点:
    工具栏自动保持按钮的外观和间隔;
    其他控件保持其相对位置和高度;
    若水平工具栏放不下时,控件能自动转至新行的开始;工具栏提供了一些显示选项,如透明度、弹出边界,对分组控件还提供空格
和分隔符。
    (7)酷栏
    酷栏(CoolBar)包含独立的可移动和调整大小的子控件。各控件属于单独的段。用户通过段左边的尺寸位置调整柄可定位控件。
    在设计时和运行时,酷栏都需要版本4.70或以后的COMCTL32.DLL(通常位于\\System或者Windows\\System32目录下)。
· Bands属性存放一组TCoolBand对象。在设计时,你可用段编辑器加入、删除或修改段。打开段编辑器,在对象观察器中选择Bands属性,然后双击右边的Value列,或单击省略号(...)按钮。也可以通过加入新的窗口控件以生成新的段。
· FixedOrder属性决定用户是否能对段重新排序。
· FixedSize属性确定段是否要保持一致的高度。

阅读(1185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~