进度条的问题,给的进度值为何赋不上去??
我在给进度条的进度值赋值时,为什么会赋不上去?
是这样的:
...
Form_Main->ProgressBar1->Position=progress;
...
其实我是多次调用这个语句的,有几个进度条,之前的几个都是可以实现的,
即Form_Main->ProgressBar1->Position的值可以达到其最大值(Form_Main->ProgressBar1->Max),但是到后面的一(有时两)条进度条时就不行了,无论如何也达不到进度条的最大值。
我看过了,progress的值明明是3,Form_Main->ProgressBar1->Position的值在执行
Form_Main->ProgressBar1->Position=progress;
前是2,而执行后还是2,progress的值也还是3啊。我就不明白这是为什么了?progress是int型来的。
我之前也试过用另一个进度条TCGauge的,但是结果仍是一样,progress被我换了好几个类型的值,但是还是没用?为什么呢?是我用的进度条太多吗?我用了11个。
有谁可以帮忙的吗?小弟已经调试了两天了,想了好多办法,还是没用,希望可以在这里找到答案!
谢谢各位了!
问题点数:20、回复次数:6Top
1 楼F117p(走两步,你走两步?)回复于 2005-07-04 18:58:35 得分 5
使用
ProgressBar1->Step =2; //设置每次步进数。
...
ProgressBar1->StepIt();//执行跳步
Top
2 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2005-07-04 22:19:35 得分 5
楼主可能是:
Form_Main->ProgressBar1->Position=progress;
当中的progress大于Form_Main->ProgressBar1->Max的值。Top
3 楼KingsonWong(杀手)回复于 2005-07-04 23:31:38 得分 0
F117p((兰色狐狸)每天都要去检破烂来维持生活)
你的方法还是不行啊。
unsigned(僵哥(当程序语言成为普及的第三语言之后……))
我的Max值是比progress的值大的。
还有人可以帮忙吗?
我想跟程序是没关系的,是不是跟我的工程的一些设置有关?比如编译、代码优化之类的设置?但是我不知道,有人可以帮忙吗?谢谢了!Top
4 楼quickreport(快速报告)回复于 2005-07-05 03:17:02 得分 5
估计是progress的取值问题,预计是3,但程序实际计算是2.
另外,最好能贴出代码,否则难以分析.Top
5 楼KingsonWong(杀手)回复于 2005-07-05 16:25:50 得分 0
现在我贴出部分代码(与前面的有点不同,但是错误是一样的):
(说明一下:
用到一个结构体:
struct TLPR
{
TLabel *Label;
TProgressBar *ProgressBar;
};
)
strSQL="SELECT * FROM JCB WHERE J_ID in ("+JID+")";
if(!ZADOqueryOpen(strSQL,Form_Main->ADOQuery_JinDu))
{
return;
}//这些是定义好的函数,没错的,是我用来搜索一些数值的。
//刷新进度条
Form_Main->ADOQuery_JinDu->First();
for(i=0;i<num;i++)//num是我定义好的,不会多于我用的进度条的
{
state=Form_Main->ADOQuery_JinDu->FieldByName("J_State")->AsString;
MaxVa=Form_Main->ADOQuery_JinDu->FieldByName("J_NTime")->AsString.ToInt();
//以上两个是其它用途的
progress=Form_Main->ADOQuery_JinDu->FieldByName("J_RTime")->AsString.ToInt();
LPR[i]->ProgressBar->Position=progress;//通过结构体指针访问,已经定义好的了。
Form_Main->ADOQuery_JinDu->Next();
}
就是这里了:LPR[i]->ProgressBar->Position=progress;
赋值到后面几个时它就老停留在某个值上,无论progress等于什么,LPR[i]->ProgressBar->Position也不改变它本身的值,为什么呢?我哪里错了还是设置问题?
我要声明,程序是没有错误的,编译可以通过,也可以运行,就是进度条的进度值不变,我中断调试到这里检测过LPR[i]->ProgressBar->Position=progress;运行前后的值,结果是等号两边的始终保持不变,当下依次循环来时,progress换了一个值,但是还是无法赋给LPR[i]->ProgressBar->Position。LPR[i]->ProgressBar->Position始终保持在某个值上。为什么呢?
希望知道的兄弟帮帮忙!谢过了!Top
6 楼quickreport(快速报告)回复于 2005-07-05 21:12:27 得分 5
progress=Form_Main->ADOQuery_JinDu->FieldByName("J_RTime")->AsString.ToInt();
//------------------------------
查一下数据表对应的值是否为空或是数值不对,另外要确保ProgressBar已申请了空间,不是野指针.
Top




