手机操盘手免费体验火热进行
20万人已抢先免费使用
624MHz CPU极速智能HKC G920震憾登场
夏新智能手机专区
主流智能手机音乐播放软件横向评测 最新手机电影
发新话题
打印

[编程] OnBoardC新手入门

用两个label不就有换行的效果了?



Built with OnboradC
谢谢PilotMain

palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~
我在OnBoardC中要显示一个删除纪录的对话框,就是有一个checkBox和两个按钮的那种:
static Boolean gSaveBackup;//////全局变量
static Boolean DetailsDeleteRecord()
{
    UInt16 ctlIndex;
    UInt16 buttonHit;
    FormPtr form;
    Boolean archive;
  //////////////////////////////  
    form=FrmInitForm(DeleteBookDialg);
    ctlIndex=FrmGetObjectIndex(form,DeleteBookSaveBackup);
    FrmSetControlValue(form,ctlIndex,gSaveBackup);
  ///////////////////////  
    buttonHit=FrmDoDialog(form);
    archive=FrmGetControlValue(form,ctlIndex);
    FrmDeleteForm(form);
   
    if(buttonHit==Delete_Cancel)//选择Cancel按钮
         return (false);
    gSaveBackup=archive;
    return true;
}
/////////////////////////////////////////////////////
在CodeWarrior中没问题,可是在OnBoardC中编译后,当我在此程序中调出这个对话框后,改变CheckBox的值,选择ok按钮,可是当我再次调出这个对话框,CheckBox的值还是没改变,和选择Cancel的效果一样!!请问怎么弄呀??            


palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~
另外,OnBoardC生成的项目源文件中,是不是都默认的加入了OnBoardHeader.h??为什么我在这个文件中添加了一个类型:
typedef Int16 Coord;
编译时却还是找不到?只能自己新建一个***.h文件,但是如果没有在源文件中默认加入OnBoardHeader.h的话,为什么一些常用的API可以直接调用而不用再声明呢??

在OnBoardHeader.h中我没发现MemHandle类型的声明,用什么代替呀?

今天在编译一个程序时,编译好后停在了OnBoard Asm的界面里,显示Finished
不像以前,编译好后,就自动到了OnBoardC里,怎么改回来呀??






zcj1122 编辑于 2003-4-23 12:47:21
palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~

看看你的palm里不是有一个OnBordHeader.h的文档了

编写的代码不用加#include "OnBordHeader.h"
onboardC自动include

typedef struct _opaque *MemHandle;
OnBordHeader.h已定义了大部分常用的类型,你只管用,不要它是如何定义的,



PilotMain 编辑于 2003-4-23 13:30:16
Built with OnboradC
有这个OnBoardCHeader.h文件,我在此文件里没找到Coord类型的定义
所以想在这个文件里加进去它的定义,可是当我在OnBoardCHeader.h里
写了: typedef UInt16 Coord;后 ,编译时还是找不到,只能在项目里新建一个***.h文件把这个定义加进来~~~~~
另外,PilotMain能给我详细地解释一下MemHandle、Handle、MemPtr这几个类型么??我老是分不清~~~~~~~~~谢谢了?~~~


palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~
typedef UInt16 Coord; OnBoardCHeader.h肯定有定义。 MemHandle和Handle是一样的都是palm内存的可移动内存块的句柄。 (typedef MemHandle Handle;) MemPtr是不可移动的内存块得指针,就是通常的void * 由于palm的内存是移动的,所以内存是用MemHandle来管理的,不能像普通pc机上直接使用指针。 palm可分配大量的可移动内存Handle,和少量的固定内存MemPtr;
尽量用MemHandle h=new MemHandleNew(4000); char *c=MemHandleLock(h); .... MemHandleUnlock(h); MemHandleFree(h); 少用char *c=new MemPtrNew(100); MemPtrFree(c);
Built with OnboradC
终于又看见PilotMain了~~~~
终于明白这几个和内存分配有关的类型了~~~
在OnBoardCHeardler.h中我发现有这样的定义:
typedef char *Ptr;
typedef Ptr *Handle;
原来,Handle就是指向char类型的指针~~
另外~~PilotMain可以看看我在2003-4-22 12:26:20 写的那段程序吗?问题出在哪里??

palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~
为什么我装了qed,可是在点击rsrcedit后还是显示couldn't find rsrcedit,line 0呀?

咦~~~
rsrc要用RsrcEdit编辑,QED只能编辑文本文件

palm是我的理想~~|~~|~~ plmm是我的梦想~~~_^^_~~~~ 为了理想而奋斗,为了梦想而追寻~~~:_:~~
发新话题