PALM开发教程-第六章 控件 |
| 作者:palmheart 来源:palmheart.net 发布时间:2005-12-21 3:31:56 |
|
在这一章中,我们将继续研究Contact Detail 程序,让它具有显示并设置日期时间的功能。我们要添加一个窗体来设置时间。这个时间和日期是可选的以供下次联系使用。 为实现此功能,我们将使用新的资源:选择触发器(selector triggers),开关按钮(push buttons),重复按钮(repeating buttons)。连同前面的按钮,它们都是Palm OS的控件。它们具有类似的属性,并且在触发时发出相同的事件。它们都可拥有自己的标签,它们都是被单击触发的。在单击后它们的形状都有所改变,不过有的只是瞬间改变就恢复了而已。 保存你的工程 当在修改工程之前,最好先制作一个它的副本。这样当出现问题时,你就可以拿出的工程的副本重新开始。步骤如下: 1. 打开Windows 资源管理器; 2. 找到工程所在的文件夹; 3. 选中工程,按下CTRL+C拷贝文件夹; 4. 选择想要保存到的文件夹; 5. 按下CTRL+V保存; 6. 将工程重新命名,以便你能清楚记忆。我将其命名为Contacts CH.5。 对Contatcs.rsrc文件内容的添加 这一部分我们为Contact Detail添加日期和时间的控件。我们还将创建一个用来改变时间的窗体。对改变日期,我们将调用Palm OS的标准对话框。 添加日期时间选择触发控件 向Contact Detail窗体添加两个标签和两个选择触发器(selector triggers)。我们将使用选择触发来显示下一次调用此contact的日期和时间。选择触发控件处理事件和按钮很相似,只是外形有很大不同。它被一个点壮矩形所环绕。和按钮相比,这个矩形在宽度和高度上都占有一个象素的额外空间,这一点在放置此控件时要考虑。有关选择触发器(selector triggers)的属性见表6-1。 Object Identifier 构造器用来代表资源头文件ID的常量 Selector Trigger ID 选择触发控件的资源ID; Left Origin 水平方向上控件的最左端位置; Top Origin 垂直方向上控件的最顶端位置; Width 控件的最大宽度。此属性很少使用,因为控件的右 边界会随着标签文本的长度改变而改变; Height 控件的高度; Usable 决定次控件是否可见能用。如果没有选中,也可在通过函数调用来实现其可见; Anchor Left 决定当文本长度改变时,控件的左侧或右侧是否做相应的伸缩; Font 标签使用的字体; Label 标签的缺省文本; 以下是添加控件的步骤: 1. 打开资源构造器; 2. 打开文件Contacts.rsrc。它在Src文件夹中; 3. 双击Contacts Detail窗体; 4. 选择Window | Catalog,产生控件模板; 5. 将一个标签拖到窗体上。置标签文本为Next Call Date。将它放在Phone Number 标签底下。设置Left Origin为0、Top Origin为60,文本字体为粗体; 6. 将一个选择触发器(selector triggers)拖到窗体上。设置Object Identifier为Date,Left Origin为81,Top Origin 为60,Width为78。向标签输入10个空格,这样可保证在缺省的情况下,当被finger按下时有充足的空间; 7. 向窗体上再拖一个标签。置标签文本为Next Call Time。将它放在Next Call Date 标签底下。设置Left Origin为12、Top Origin为80,文本字体为粗体; 8. 向窗体上再拖一个选择触发器(selector triggers)。设置Object Identifier为Time,Left Origin为81,Top Origin 为80,Width为78。也向标签输入10个空格。 9. 添加控件后的窗体如图6-1所示。按下右上角的X按钮,关闭窗体。 图6-1:Contact Detail 窗体 创建一个新的设置时间窗体 现在创建一个窗体: 1. 点击资源(resource)中的窗体(Forms)选项,按下CTRL-K创建一个新的窗体; 2. 点击name框并重命名为Enter Time; 3. 双击打开窗体进行编辑; 4. 首先设置窗体属性。复选中属性Modal和Save Behind。我们将此窗体作为对话框的形式出现;此窗体是我们接触到的第一个不是全屏显示的窗体;我们修改其宽度(Width)为156,其高度(Height)为53; 5. 为实现modal边框可见,我们需要在窗体和屏幕边界留出2个象素的宽度。所以宽度设为156,而左初始边界应为2,顶端初始边界应为105,这样就保证了两个象素的余度; 6. 修改窗体的名字(Name)属性为Enter Time。 添加开关按钮(push buttons) 开关按钮(push buttons)在表现为按下的状态时,不同于通常淡的底色和黑的文字,而是黑的底色和淡的文字。我们使用开关按钮(push buttons)显示小时、分钟、和上午/下午(AM/PM)。在放置开关按钮(push buttons)时,我们必须考虑它的边界所占用的一个象素的宽度。开关按钮(push buttons)的属性如表6-2所示: Object Identifier 资源构造器用来代表资源头文件ID的常量 Push Button ID 开关按钮(push buttons)的资源ID Left Origin 水平方向上按钮的最左端位置; Top Origin 垂直方向上按钮的最顶端位置; Width 按钮的宽度 Height 按钮的高度 Usable 用来定义控件是否可见及可用,如果没有选中,也可在通过函数调用来实现其可见 Group ID 表示当按钮按下时是否突出 显示。如果此数字为0,则按钮当被按下是将在“按下”和“没有按下”两个状态间切换。当此数字不为0时,按钮被按下是保持原来的状态。在每一组中所用的组(Group)ID应是唯一的,因为在后面的代码中将使用到组ID Font 标签显示文字的字体 Label 标签本身的文字 添加步骤: 1. 将一个开关按钮(push buttons)拖到Enter Time 窗体上; 2. 既然此按钮显示时间,可将Object Identifier设置为Hours。设置属性:Left Origin=5,Top Origin=17,Width为18,Group ID为1。Font属性为Bold,清除标签内的文字; 3. 复制Hours开关按钮(push buttons)。可选中Hours开关按钮(push buttons)后,按下CTRL-D进行复制。修改Object Identifier为MinutesTens。设置属性:Left Origin=34,Top Origin=17,Width为12,因为它只包含一个数字; 4. 复制MinutesTens按钮。可选中MinutesTens按钮后,按下CTRL-D进行复制。修改Object Identifier设置为MinutesOnes。设置属性:Left Origin=50,Top Origin=17; 5. 再拖动一个开关按钮(push buttons)到窗体上。修改Object Identifier设置为AM。设置属性:Left Origin=109,Top Origin=17,Width为20,Group ID为2。设置标签内的文字为AM; 6. 复制AM开关按钮(push buttons)。修改Object Identifier为PM。设置属性:Left Origin=130,Top Origin=17,注意AM 按钮和PM按钮重叠是为 |
| [] [返回上一页] [打 印] |
|
文章评论 |
