信息产业培训网

用DELPHI在状态栏中显示进程条[2]

http://www.miiceic.org.cn   2007-10-16 9:40:55   中程在线   浏览数:
关键字:delphi
上面的步骤在实际编写代码时是这样实现的:

1.//首先在FormCreate事件中编写代码
procedure TForm1.FormCreate(Sender: TObject);
var
 ProgressBarStyle: integer;
begin
 //将状态栏的第二块面板设为的自绘(即psOwnerDraw)
 StatusBar1.Panels[1].Style := psOwnerDraw;

 //将进程条放入状态栏
 ProgressBar1.Parent := StatusBar1;

 //去除状态栏的边框,这样就与状态栏溶为一体了
 ProgressBarStyle := GetWindowLong(ProgressBar1.Handle,GWL_EXSTYLE);
 ProgressBarStyle := ProgressBarStyle - WS_EX_STATICEDGE;
 SetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle);
end;

2.//编写状态栏的自绘代码
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;Panel: TStatusPanel;const Rect: TRect);
begin
 //注意这里的Panels[1]指的就是第2块面板,因为默认是从0开始的
 if Panel = StatusBar.Panels[1] then
  with ProgressBar1 do begin
   Top := Rect.Top;
   Left := Rect.Left;
   Width := Rect.Right - Rect.Left - 15;
   Height := Rect.Bottom - Rect.Top;
  end;
 end;

  关键问题解决之后,我们来一个小例子,这样就可以有一个全局的印象了,控件的摆放如(图3)所示,编写代码如下:


procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
ProgressBar1.Position := 0;
ProgressBar1.Max := 100;

for i := 0 to 100 do
begin
ProgressBar1.Position := i;
Sleep(25);
end;
end;

  运行一下这个小程序,点击一下按钮,看到了吧,进程条在状态栏中动起来了。
来源:csai
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved