CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

进度条的问题,给的进度值为何赋不上去??

楼主KingsonWong(杀手)2005-07-04 18:48:43 在 C++ Builder / 基础类 提问

我在给进度条的进度值赋值时,为什么会赋不上去?  
  是这样的:  
  ...  
   
          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

相关问题

  • 我做的进度显示为何不连续?
  • 当把DataGrid的Cell内容赋值到Excel的过程中想在DataGrid的CaptionText上显示进度,但不显示。WHY?
  • 测试用SlickUpload进行大文件上传,为何进度条不显示?
  • 怎样在进度条(ProgressBar)中间写一个当前进度百分比,随进度条值改变而改变,但又要使其不闪烁??
  • 数组赋值为何少零?
  • 委托变量为何赋不了值?
  • CString变量为何不能赋值?
  • 进度条的进度
  • 进度条
  • 进度条

关键词

  • 代码
  • 执行
  • progressbar
  • progress
  • jindu
  • 进度
  • 值
  • adoquery
  • 进度条
  • lpr

得分解答快速导航

  • 帖主:KingsonWong
  • F117p
  • unsigned
  • quickreport
  • quickreport

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo