注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 数据库 > Delphi 内容正文:用DELPHI在状态栏中显示进程条

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

发布时间:2006-06-30 20:51:20 来源:天极开发 网友评论 0 条
  经常上网的朋友可能早就已经发现,在一些浏览器的底部会在某些情况下动态显示一个进程条,比如在显示网页的时候,如果时间比较长,就会出现一个一格一格前进的,用以提醒用户已经有多少数据被下传下来。它不仅仅出现在浏览器中,还经常被用于下载软件中,比如现在最热门的BT下载软件,都使用了这一技术。技术的改进源于工作的需要,现在编写网络软件那么流行,上面的小技巧应该是每个像我们这样的编程爱好者都需要的吧。


  打开DELPHI,选择WIN32面板上的状态栏(StatusBar)组件,放到窗体(Form)上(图1),默认情况下状态栏组件将自动被摆放到窗体的底部(即Align属性被设为alBottom),同时该状态栏上初始为一个面板(Panel),为了使下面的表述清楚,我们来给这个状态栏加一个面板,操作步骤如下:

  1.双击状态栏组件打开面板编辑器(Panels editor)。

  2.右击面板编辑器然后选择“Add”,添加一个面板。

  3.选择第一个面板,在对象检查器(Object Inspector)中选中Text属性,写入“Progress:”。

  4.关闭面板编辑器。

  仅仅有一个状态栏当然不行,今天的主角应该是Progress(进程条)才对,现在我们把进程条摆放到窗体上来。(图2)


  看到上面的图之后,有的急性子读者可能要问,怎么那个进程在状态条的上面,而不是在它的内部,就是在面板上呢?这个不是我要的结果嘛!别急,别急,下面的才是今天的压轴好戏,把进程条放到状态栏的面板上,还能让它动起来。操作步骤如下:

  1.把ProgressBar的Parent属性设为StatusBar。

  2.把StatusBar的第二块面板的Style属性改成“psOwnerDraw”,这里是解决问题的关键,当Style被设为psOwnerDraw之后,面板上就可以被放制其它的组件,实现的方法是在OnDrawPanel事件中编写代码,默认情况是被设为psText,这样就只能显示文本,就像第一块面板那样。

  上面的步骤在实际编写代码时是这样实现的:

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;

  运行一下这个小程序,点击一下按钮,看到了吧,进程条在状态栏中动起来了。
相关文章
  • 用Delphi实现24位真彩色图标
  • 用Delphi开发视频聊天软件
  • VC技巧:在程序的状态栏中实现进度条
  • Delphi快速入门(二)
  • Delphi快速入门(一)
【评论】【收藏本文】【打印】【关闭】
上一篇文章:用Delphi实现24位真彩色图标
下一篇文章:在DBGrid组件中显示和编辑MEMO字段
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • COM 组件设计与应用之简单调用组件
  • 什么是noahWeb
  • Delphi深度探索之外壳执行操作记录器
  • 在DBGrid组件中显示和编辑MEMO字段
  • Oracle数据操作和控制语言详解
  • 将视频演示作为应用程序的启动封面
  • Oracle:PL/SQL 中如何使用Array
  • NoahWeb实现表格多行多列
  • Delphi快速入门(五)
  • EA与Rose UML建模工具比较
阅读排行
  • 1.全面剖析Delphi 2006新增特性
  • 2.用Delphi开发视频聊天软件
  • 3.用Win32 API枚举应用程序窗口和进程
  • 4.软件的架构与设计模式之什么是架构
  • 5.软件的架构与设计模式之模式的种类
  • 6.Delphi中为TreeView添加单选和复选框
  • 7.用Delphi实现24位真彩色图标
  • 8.VS.NET2005 Beta2初体验之感受2005
  • 9.程序界面设计模式慨述
  • 10.没落的奇迹 谁会买下Delphi?
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载