PALM开发教程-第三章 文本框中的乐趣(转)

在本章节中,我们将通过讨论第二章中Hello应用程序的副本,来研究文本框的属性和事件。涉及的内容包括文本框如何调用Palm OS存储器和处理它们之间的关系等。我们也将花些时间讨论与文本框相关的其它一些内容:

◆手写输入转换指示器(Graffiti shift indicators)
◆字符串资源(String resources)
◆编辑菜单的特殊之处和普通菜单
◆Palm OS 版本可兼容代码
◆错误信息和警告

文本框究竟是什么?
文本框其实就是一个编辑框(单行可编辑的),利用它你可以让你的用户输入文字或数据。让我们来创建一个文本框并感受学习的乐趣吧。

先在Code Warrior集成开发环境中创建一个应用程序:

1.运行Code Warrior集成开发环境。

2.选中菜单File | New Project来创建一个新的项目。

3.从项目选项中选出Hello应用程序,并重命名为你的新应用程序的名称。

4.从项目中移走原来的资源文件。你可以这样操作:在Src文件夹中用右键点击Hello.rsrc,选中Remove Selected Items。

5.到你的项目文件夹的Src目录下删除Hello.rsc。

6.运行资源构造器(Constructor)来创建一个资源文件。

7.在资源列表中选取窗体并按Ctrl+K,创建一个名为Contact Detail的窗体。点击默认名称并重新命名窗体。

8.双击窗体以打开该窗体进入编辑状态。

9.向窗体中拖放一个文本框。你可以选中菜单WindowCatalog来打开目录窗口。然后从目录窗口中拖动一个文本框控件放到窗体中。

10.命名文本框名为FirstName。你可以这样操作:点击该文本框来显示它的属性,在窗体的左边方框会出现一个窗口,点击Object Identifier属性,然后输入FirstName。

11.在这一步,最好把手写输入转换指示器(Graffiti shift indicators)放到你的窗体中。从目录窗口中拖动一个手写输入转换指示器控件放到窗体中,这个转换器的标准位置应放在窗体的右下角。

12.按以上操作后,窗体显示如图3-1所示。

13.回到Code Warrior集成开发环境中,在项目中加入一个新的资源文件。在Code Warrior集成开发环境中选中Project | Add Files命令。

14.选中Project | Make命令编译连接项目。

15.到调试器中调试程序。首先通过菜单Project |
Enable Debugger来击活调试器。

16.打开你的Palm,确认它固定在支架上。然后关掉PC的HotSync软件。

17.在PC上,选中Project | Debug命令。

18.在你的装置中,输入l连写的字母“1”,两个点号“..”,和一个数字“2”(1..2),来启动控制台程序(console)。

19.在PC上,点击OK启动调试器。

20.在调试器中点击前进箭头,执行应用程序。
图3-1 程序中窗体的外观

在Palm上运行应用程序,点中文本框,你就可以输入文字或数字了。如果你在大字状态时向右上一挑或者在符号中一点,你放在窗体上的手写输入转换指示器会分别露出箭头或点。应用程序显示如图:


需要结束应用程序时,请切记点击调试器窗口中的X来重启你的装置或停止控制台程序的运行。让控制台继续运行会引起Palm的一些问题。

如果你的手写输入转换指示器在你刚才的程序中运行顺利的话,你就可以开始进一步了解它了。但如果它没能正常工作,那么你就有必要去判定程序中是否存在阻止文本框事件被操作系统处理的代码了。正确的做法是,可以把它们放在任何窗体中,那么当你手写输入时就可以看到它的用途了。它通常被摆在窗体右下角,因为人们习惯这样做。没有程序一定需要它,但把它放到窗体中它就能工作。

从上面的例子中你可以看到许多与文本框相关的东西在工作。我们运行的窗体中的代码(hello.c)其实并没有对窗体做什么,然而我们却可以修改,输入,查找和替换文本,甚至做其它我们想做的事情。剪切和粘贴在这里不起作用。至于菜单和快捷键,我们将在以后的章节中接触到。

注意:如果你的Palm在调试器运作后出现异常,可能是因为它没有被重启或控制台依然在运行。请把你的Palm放好,用推针或回形针的尾部去顶开P alm背面小洞中的重启按钮。

属性
你可以在资源构造器中改变很多有关文本框如何工作的内容。在构造器中调出Contact Detail窗口,选中项目中的.rsrc文件,然后在Contact Detail窗体中双击文本框,它的属性会显示在旁边。所有的Palm OS 用户界面控件都有一些公共的属性,像Left Origin和Top Origin。表3-1是所有的文本框属性和描述的列表。熟悉这些属性后,重新编译并调试程序,以试验每一个属性是如何影响文本框行为的。

表3-1

名称 描述
Object Identifier 你选定的文本框名称。

Field ID 这个数值是Palm OS 用来定义特殊的用户界面对象的。

Left Origin 定义文本框左边界的位置,整个屏幕跨越160象素。

Top Origin 定义文本框上边界的位置,整个屏幕从顶到底共160象素。

Width 文本框宽度象素。

Height 文本框高度象素,你必需增加这个数值以避免砍掉一些大字体的顶部。

Usable 定义文本框是否在窗体中显示。那些没有被标记为可用的文本框是不可见或不可选的,直到它们被某个功能命令激活。

Editable 定义文本框是否可选或接受涂写输入。对大部分文本框来说,该项已被选中。

Underline 在文本框下面画上圆点线来显示它的位置。否则,在屏幕上不能指出已存在的空文本框。

Single Line 限制输入一行文本。该文本框不会垂直滚动或接受回车或Tab键的输入。

Dynamic Size 使该文本框可以根据需要扩大,以显示所有输入的文本。你必需增加代码来实现,不用担心在改变属性时没有看到它的作用。

Left Justified 使文字左对齐排列。不用检查对数字显示的有用性,所以小数排成行放置。

Max Characters 规定的最大字符数,在Palm OS禁止输入和发声报警前可以输入的字符数。

Font 文本中的字体在文本框中显示。请注意你最好根据你所选的字体手动改变文本框的高度。

Auto Shift 把输入的第一个字母变为大写。

Has Scroll Bar 这个选项使文本框在字符太多时自动加上滚动条。这会引起Palm OS发送事件,用户可以在该事件中更新滚动条显示。

Numeric 允许输入的数字转变为字符保存。

再谈事件
从第二章可以了解到,Palm OS程序,类似于Mac OS程序和Windows程序,都是以事件驱动为基础的。程序不用做任何事情(大部分是这样),直到用户的输入到来,比如按下了按钮,用输入笔或手指接触了屏幕等。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126910/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126910/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值