新手入门
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2013-3-7
- 在线时间
- 0 小时
|
进入“SD卡、FLASH磁盘”界面后,程序一直在while(rval==0)里面循环,但是双击进入FLASH磁盘后,却找不到进入哪个函数执行了。
在if(system_task_return)、if(ebooksta==0) 、if(ebooksta==1)//处于文本阅读状态.三种条件里面的每一个行都设置断点试过,却没有抓住。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
while(rval==0)
{
tp_dev.scan(0);
in_obj.get_key(&tp_dev,IN_TYPE_TOUCH); //得到按键键值
delay_ms(5);
if(system_task_return) //TPAD返回
{
if(ebooksta) //文件浏览状态,先退出文件浏览
{
memo_delete(tmemo); //释放内存
tmemo=NULL;
gui_memin_free(pname); //释放内存
pname=NULL;
ebooksta=0; //回到文件浏览状态
app_filebrower((u8*)APP_MFUNS_CAPTION_TBL[0][gui_phy.language],0X07); //选择目标文件,并得到目标数量
btn_draw(rbtn); //画按钮
filelistbox_rebuild_filelist(flistbox);//重建flistbox
system_task_return=0;
}else break;
}
if(ebooksta==0) //还未开始文件浏览
{
filelistbox_check(flistbox,&in_obj);//扫描文件
res=btn_check(rbtn,&in_obj); //扫描返回按键
if(res)
{
if(((rbtn->sta&0X80)==0))//按钮状态改变了
{
filelistx=filelist_search(flistbox->list,flistbox->selindex);//得到此时选中的list的信息
if(filelistx->type==FICO_DISK)//已经不能再往上了
{
break;
}else filelistbox_back(flistbox);//退回上一层目录
}
}
if(flistbox->dbclick==0X81)//双击文件了
{
rval=f_opendir(&ebookdir,(const TCHAR*)flistbox->path); //打开选中的目录
if(rval)break;
dir_sdi(&ebookdir,flistbox->findextbl[flistbox->selindex-flistbox->foldercnt]);
rval=f_readdir(&ebookdir,&ebookinfo);//读取文件信息
if(rval)break;//打开成功
fn=(u8*)(*ebookinfo.lfname?ebookinfo.lfname:ebookinfo.fname);
pname=gui_memin_malloc(strlen((const char*)fn)+strlen((const char*)flistbox->path)+2);//申请内存
if(pname==NULL)rval=1;//申请失败
else
{
app_gui_tcbar(0,0,240,20,0x02); //下分界线
gui_show_string(fn,2,2,240-2,16,16,WHITE); //显示文件名
pname=gui_path_name(pname,flistbox->path,fn); //文件名加入路径
rval=f_open(f_txt,(const TCHAR*)pname,FA_READ); //只读方式打开文件
if(rval)break;//打开成功
tmemo=memo_creat(0,20,240,300,0,1,16,f_txt->fsize+1);//申请整个txt这么多的内存加一个.
if(tmemo==NULL)
{
errtype=1;//内存不足
break;
}
rval=f_read(f_txt,tmemo->text,f_txt->fsize,(UINT*)&br); //读出txt里面的内容
if(rval)break;//打开成功
memo_draw_memo(tmemo);
}
flistbox->dbclick=0;//标记已处理
ebooksta=1;
}
}
if(ebooksta==1)//处于文本阅读状态.
{
memo_check(tmemo,&in_obj);
}
}
|
|