天快亮了。赶紧一贴,睡觉!!很简单的问题,班分相赠

claider 2003-03-05 05:56:17
有类CLabelView{
int i_IndexInQuery;
TADOQuery * m_Query;
};
。其部分成员函数如下

void CLabelView::NextPage()
{
i_IndexInQuery+=NumOfSongOnScreen;
if(i_IndexInQuery>(m_Query->RecordCount) )
{
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ShowMessage("i_IndexInQuery beyond the RecordCount");
//just for testing
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
i_IndexInQuery=m_Query->RecordCount-NumOfSongOnScreen; //or +1?
}
this->GetDataFromQuery() ;

for(int j=0;j<NumOfSongOnScreen;j++)
b_Select[j]=false;//reset the flags
}

void CLabelView::GetDataFromQuery()
{
AnsiString kk,jj;

if(!m_Query->IsEmpty ())
{
this->m_Query->First ();
int j;
for(j=1;j<i_IndexInQuery;j++)
if(!m_Query->Eof )
m_Query->Next();
else break ;
int i;
for (i=0;i<NumOfSongOnScreen;i++)
{

kk=AnsiString(m_Query->FieldByName ("SongID")->Value) + "\0";
strcpy(this->a_SongOnScreen[i].SongID,kk.c_str()) ;

jj=AnsiString(m_Query->FieldByName ("SongName")->Value) + "\0";
strcpy(this->a_SongOnScreen[i].SongName,jj.c_str()) ;



if(!m_Query->Eof)
m_Query->Next();
else break;

}
}
构造函数中i_IndexInQuery=1,第一次调用后i_IndexInQuery结果为9,正常。m_Query->RecordCount=5592。而紧接着第二次调用NextPage()后发现i_IndexInQuery一下子变成一个很大的数,很奇怪。这是为什么?
第二个问题,我的LabelView函数中有NumOfSongOnScreen个对象(即this->a_SongOnScreen[i]数组)。为什么,第一个到第五个,以及第七个都能够正常的复制给Label->Caption,偏偏第六个不行呢?
...全文
25 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
claider 2003-03-07
  • 打赏
  • 举报
回复
这肯定是bcb的大bug,不过现在没时间研究,先结帖!!!
ppzhao 2003-03-05
  • 打赏
  • 举报
回复
这个i_IndexInQuery可以不用
用Query->MoveTo()
更佳
whitelion 2003-03-05
  • 打赏
  • 举报
回复
类初始化时把int型变量设为0
cdws222 2003-03-05
  • 打赏
  • 举报
回复
看不懂,不过我知道你以前是用VC的

VC对类的命名一般都是加一个C做开头,而BCB是用T
myy 2003-03-05
  • 打赏
  • 举报
回复
kkk
claider 2003-03-05
  • 打赏
  • 举报
回复
我更改了程序,使用TADOQuery-〉MoveBy()代替;n个Next
但是i_IndexInQuery的变化仍然很奇怪,我需要他来定位
Wingsun 2003-03-05
  • 打赏
  • 举报
回复
就这么看,还是看不出你的问题是出在哪儿,做好给出和调用相关的内容。
claider 2003-03-05
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1492/1492080.xml?temp=.1550104
帮我看一下这个见鬼的问题,方案一]

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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