geillizer 2005-12-16 05:50
我想编写个独立的输入法,请问应该如何入手呢?
我的基本状况是:
学过半个学期的C语言,没接触过具体的复杂的编写,PALM编程也没接触过
请高手给说说具体的入手过程?谢谢!
laputarei 2005-12-16 17:57
1、下载CW9开发环境;
2、祈祷这个月能够买到《PalmOS圣经2》,埋头阅读;
3、如果你有足够的耐心读我写的烂代码,可以参考这个:
[img]http://www.tompda.com/bbs/img/addon.gif[/img][url=http://www.tompda.com/bbs/download.asp?id=0509/tompda_698041_TreoStroke.rar]0509/tompda_698041_TreoStroke.rar[/url]
laputarei 编辑于 2005-12-16 10:01:52
simontang 2005-12-25 23:01
有个问题:
在Clie TG50上,内置键盘的按键在按键检测的时候都是同一个值,即不论按a还是b都是同一个值。没有在其它的型号上试过,估计可能有同样的问题。
CW9所带的sony sdk还是for os4的,并未提供对内置键盘的支持,不知道有没有sony sdk for os5,好象在网上都找不到地方下载。
simontang 2005-12-27 12:14
按键的问题倒是解决了,原来在TG50上,如果直接取按键事件的data.keyDown.chr,值是一样的,但是data.keyDown.keyCode值不同,且正好是键值。
不过在TreoStroke原来的笔划定义方法里,即使改取data.keyDown.keyCode值,还是只能得到一个0值。不得已,从McPhling的源代码里抄过来取键值的方法。在TG50上实验通过,目前已经可以正常定义笔划对应的键了。
但是,还是有例外的,TG50的其它几个硬键,比如databook, address,却正好要用data.keyDown.chr的值才行。本来想用硬键来选字,这下反而不好办了。
剩下的事就是把代码里取data.keyDown.chr的地方都统一换成data.keyDown.keyCode。目前已经可以在TG50上输入文字了。还存在的一个问题是:当按笔划键时,会在输入法的状态条里重复显示。比如按横的时候,显示两个横。这时候不得不用退格键来删除一个。没来得及仔细看代码,估计这个问题应该还是比较好改的。
呵呵,第一次改Palm上的程序,还是有点摸不着头脑。不过只是局部的修改,还将就。不过TreoStroke的代码里,有很多是Hard Code,要修改的时候还挺费劲的,还需要重构了一下代码。