社区
C++ Builder
帖子详情
怎么把进度条放到状态栏上去啊?
kinglang
2002-06-03 04:03:59
我先放了一个状态栏到form上,然后我想把一个进度条放到状态栏上去,可是放不上去。请问怎样才能放上去?
...全文
136
12
打赏
收藏
怎么把进度条放到状态栏上去啊?
我先放了一个状态栏到form上,然后我想把一个进度条放到状态栏上去,可是放不上去。请问怎样才能放上去?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kinglang
2002-06-03
打赏
举报
回复
呵呵,哥儿们真是说得对极了。
我这就照章办事去。
给分!!!
SharpKing515
2002-06-03
打赏
举报
回复
来晚一步啊,,,
同意fansses(你好)的,,,
wfu
2002-06-03
打赏
举报
回复
都被你们说了!
Libran
2002-06-03
打赏
举报
回复
直接是放不上的,在程序里动态生成,再放在状态拦里:
TProgressBar *ProgBar=new TProgressBar(this);//生成新的进度条
ProgBar->Parent=StatusBar;//将进度条放在状态拦里
...//处理代码
delete ProgBar;//释放生成的进度条
HUANG_JH
2002-06-03
打赏
举报
回复
up
codecb
2002-06-03
打赏
举报
回复
各位都说了!
完了!
fansses
2002-06-03
打赏
举报
回复
首先将状态栏中的某一个面板的style属性设为psOwnerDraw,并在状态栏的OnDrawPanel事件中获取将Style属性设置为psOwnerDraw的面板的尺寸。还要要头文件中的private中声明几个变量:
TProgressBar* ProgressBar; // 进度条组件
TRect ProgressBarRect; // 进度条组件的尺寸
代码如下(假设我定义了一个Button事件来处理的):
//---------------------------------------------------------------------------
void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect)
{
ProgressBarRect = Rect;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i, StepCount;
ProgressBar = new TProgressBar(this);
StepCount = 5000; // 进度条的最大步长
//设定进度条的位置、宽度和高度
ProgressBar->Top = ProgressBarRect.Top;
ProgressBar->Left = ProgressBarRect.Left;
ProgressBar->Width = ProgressBarRect.Right-ProgressBarRect.Left;
ProgressBar->Height = ProgressBarRect.Bottom-ProgressBarRect.Top;
ProgressBar->Visible = True; // 显示进度条
try
{
ProgressBar->Parent = StatusBar1; // 进度条的父级
ProgressBar->Min = 0; // 最小值
ProgressBar->Max = StepCount; // 最大值
ProgressBar->Step = 1; // 步长
for( i=1; i<StepCount; i+=ProgressBar->Step ) // 累加进度条
ProgressBar->StepIt();
MessageDlg("状态条显示完毕。", mtInformation, TMsgDlgButtons()<<mbOK, 0);
}
__finally
{
delete ProgressBar; //释放进度条的资源
}
}
hotxu
2002-06-03
打赏
举报
回复
头文件:
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TStatusBar *StatusBar1;
TButton *Button1;
void __fastcall StatusBar1DrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
TProgressBar* ProgressBar; // 进度条组件
TRect ProgressBarRect; // 进度条组件的尺寸
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
hotxu
2002-06-03
打赏
举报
回复
void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect)
{
ProgressBarRect = Rect;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i, StepCount;
ProgressBar = new TProgressBar(this);
StepCount = 5000; // 进度条的最大步长
//设定进度条的位置、宽度和高度
ProgressBar->Top = ProgressBarRect.Top;
ProgressBar->Left = ProgressBarRect.Left;
ProgressBar->Width = ProgressBarRect.Right-ProgressBarRect.Left;
ProgressBar->Height = ProgressBarRect.Bottom-ProgressBarRect.Top;
ProgressBar->Visible = True; // 显示进度条
try
{
ProgressBar->Parent = StatusBar1; // 进度条的父级
ProgressBar->Min = 0; // 最小值
ProgressBar->Max = StepCount; // 最大值
ProgressBar->Step = 1; // 步长
for( i=1; i<StepCount; i+=ProgressBar->Step ) // 累加进度条
ProgressBar->StepIt();
}
__finally
{
delete ProgressBar; //释放进度条的资源
}
}
kinglang
2002-06-03
打赏
举报
回复
可是这样的话,因为我状态栏是限定了长度的,那不是要精确控制字符个数吗才能让显示类似于进度条吗。
太麻烦了。
还是教教我放进度条吧。
kinglang
2002-06-03
打赏
举报
回复
呵呵,这倒是个好办法,兄弟你真是长得帅又有才华啊。
向你学习。
LuoGD
2002-06-03
打赏
举报
回复
在状态栏中显示"■"字符的个数表示进度。我是这么做的
C#编程经验技巧宝典
72 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ...
PT80-NEAT开发指南v1.1
NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................
计算机应用技术(实用手册)
本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂
上去
的主机要采用正版杀毒软件,升过级的才可以 49 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开...
JavaScript实用范例词典04-14
5.40 在弹出的窗口中显示
状态栏
... 141 5.41 在弹出的窗口中显示滑块... 142 5.42 允许调整弹出窗口的大小... 143 5.43 弹出一个顶层窗口... 144 5.44 关闭窗口... 145 5.45 在主窗口上关闭弹出式窗口... 146 ...
Qt 窗口:菜单、工具与
状态栏
的应用
Qt窗口中 菜单栏、工具栏、
状态栏
、浮动窗口 知识点总结
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章