如何得到table中哪一行被选中了?

hbxufenghua 2005-10-13 05:27:05
如上所示,我的目的是想这样的。用户点击table中的某一行,我就把该行加亮并设为可选(在palm中这两个是不同的),如果用户再点击remove按钮后,我就删掉加亮的那行。

问题是palm中好像并没有直接判断哪一行是加亮的函数。

与该过程相关的函数有三个
1:TblSetSelection(tblP, row, column) // 设置行为row,列为column的item为选中。
2: TblSelectItem(tblP,row,column) // 加亮行为row,列为column的item
3: TblGetSelection(tblP,&row,&column)
第三个函数是用来取得当前选中的item的行列值,同时该函数的返回值可以用来表示该item是否被加亮。

看起来似乎用这三个函数可以实现我要的功能。

case tblSelectEvent:
handled = true;
rowNum = eventP->data.tblSelect.row;
// 设为选中
TblSetSelection(tblP,rowNum,0);
EditPlaylistTableInit(frmP); // 会调用TblDrawTable()
// 加亮
TblUnhighlightSelection(tblP);
TblSelectItem(tblP, rowNum, 0);
break;

case ctlSelectEvent:
switch(eventP->data.ctlSelect.controlID){
case EditPlaylistRemoveButton:
if(!TblGetSelection(tblP,&rowNum,&columnNum));
break;
DeleteSongFromPlaylist(gEditDatabase,gEditPlaylistCursor+rowNum);
EditPlaylistTableInit(frmP);
handled = true;
break;

结果就是每次都会在
if(!TblGetSelection(tblP,&rowNum,&columnNum));
后得到返回值为false,可是明明我看到返回的rowNum,columnNum所对应的item是加亮的呀?
这到底怎么回事,使我用的不对吗?

望高手指正!
...全文
440 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbxufenghua 2005-10-17
  • 打赏
  • 举报
回复
这种方法不管怎么弄就是不行。

后来我就把rowNum,columnNum的初始值设为-1,这样调用以后如果得到的值还是-1,则说明没有点击;如果是个〉0的数,则该数就是点击的行号。这样看着别扭,行还是行的。
wilderwang 2005-10-15
  • 打赏
  • 举报
回复
这就不太清楚了,好像没有问题啊,多试几个ROM试试?

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧