如何把进度条放在TStatusBar上

lwp 2000-07-09 06:00:00
像WinZIP那样的进度条,在状态栏显示。
...全文
349 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
67338关注!
junr 2000-07-14
  • 打赏
  • 举报
回复
完全同意Bald_eagle的方法
cfire 2000-07-14
  • 打赏
  • 举报
回复
完全同意7030的方法
town 2000-07-12
  • 打赏
  • 举报
回复
完全同意Bald_eagle的方法,这是最简单的方法,哪里还要用控件或其它。
heww 2000-07-12
  • 打赏
  • 举报
回复
我用hhzh426的方法作过
delphizhao 2000-07-12
  • 打赏
  • 举报
回复
hhzh426的方法比较专业!
peacock的方法比较简单,但是进度条增加是好像有些闪烁.
sunjian 2000-07-11
  • 打赏
  • 举报
回复
写一个控件好了,很简单的
supershan 2000-07-10
  • 打赏
  • 举报
回复
稍微改一下statusbar的源码做一个控件。不但可以放进度条。边图片都可以放。想要请通知我!
7030 2000-07-10
  • 打赏
  • 举报
回复
去WWW.DELPHIUSER.COM去下载一个控件包:RAIZE里面的控件能完全符合您的要求。
(也可由我MAIL TO YOU)
hhzh426 2000-07-10
  • 打赏
  • 举报
回复
在程序中设置存放进度值的变量x,比如百分之多少。
将相应的statusbar的panel的style属性设为psOwnerDraw,在StatusBar1DrawPanel事件中写如下代码:
首先判断一下当前要画的panel是否是您想表示进度的panel
如是,则
statusbar1.canvas.brush.color=clblue;
statusbar1.canvas.fillrect((rect(Rect.left,Rect.top,Rect.right*x,Rect.bottom));
如果还想写文字,可以用canvas的textout或者textrect方法画字。
用这种方法只能表示进度,但不能通过用鼠标拖拉的方法改变进度。即只能实现进度条的部分功能。
peacock 2000-07-09
  • 打赏
  • 举报
回复
很简单,你放一个TPanel,将它的Align属性设为alBottom,然后在上面放入TStatusBar,最后把进度条TProgressBar放在TStatusBar上面,调整一下大小和方向便可。
pipimei 2000-07-09
  • 打赏
  • 举报
回复
应该是可以的,因为状态条控件是从TwinControl类继承的。我想可以这样:
在窗体上放一进度条,然后动态地设定其parent为statusbar1。
Bald_eagle 2000-07-09
  • 打赏
  • 举报
回复
先把状态栏的第一个Panel的style属性设为psOwnerDraw,在窗体上随便放一个进度条,
然后在状态栏的OnDrawPanel事件中按以下书写:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
ProgressBar1.Parent := StatusBar1;
ProgressBar1.Left := Rect.Left;
ProgressBar1.Top := Rect.Top;
ProgressBar1.Width := Panel.Width;
ProgressBar1.Height := Rect.Bottom - Rect.Top;
ProgressBar1.Visible:= True;
end;
hfyun 2000-07-09
  • 打赏
  • 举报
回复
由于状态条不是容器,所以进度条无法放在上面,你可以用Pannel和状态条组合使用。
zsr 2000-07-09
  • 打赏
  • 举报
回复
指定Parent属性,并设定好大小即可。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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