怎么把进度条放到状态栏上去啊?

kinglang 2002-06-03 04:03:59
我先放了一个状态栏到form上,然后我想把一个进度条放到状态栏上去,可是放不上去。请问怎样才能放上去?
...全文
136 12 打赏 收藏 转发到动态 举报
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
  • 打赏
  • 举报
回复
在状态栏中显示"■"字符的个数表示进度。我是这么做的

13,870

社区成员

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

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