首先,在Form中放置一个状态条控件Status。调节Status.Panels,在其中插入3个状态条嵌板。第二个嵌板的参数Style设置成psOwnerDraw。这一点很重要,如果没有这样做,将永远无法显示文字以外的东西。在Form1的Private部分声明一个TRect类型的变量:StatusDrawRect:TRect;然后在状态条的OnDrawPanel事件中插入一行:StatusDrawRect:=rect;以记录参数Style设置成psOwnerDraw的嵌板的坐标。

第二步,在Form的Private中声明一个TProgressbar类型的成员变量Progress。然后在一个菜单的消息响应过程中调用Create方法把它建立起来,再设定状态条为该进度条的父窗口,进而设定进度条的一些必要参数,例如:最大值、最小值、原点坐标、高度和宽度等。

程序清单:

unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ComCtrls, Menus;

type
    TForm1 = class(TForm)
      Status: TStatusBar;
      MainMenu1: TMainMenu;
      N1: TMenuItem;
      Create: TMenuItem;
      Exit: TMenuItem;
      procedure StatusDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
      const Rect: TRect);
      procedure ExitClick(Sender: TObject);
      procedure CreateClick(Sender: TObject);
    private
      StatusDrawRect:TRect;//记录要插入状态条特技的坐标范围
      Progress:TProgressbar;
    public
      { Public declarations }
  end;

var
    Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.StatusDrawPanel(StatusBar: TStatusBar;
    Panel: TStatusPanel; const Rect: TRect);
begin
    StatusDrawRect:=rect;//记录要插入状态条特技的坐标范围
end;

procedure TForm1.ExitClick(Sender: TObject);
begin
    Form1.Close;
end;

procedure TForm1.CreateClick(Sender: TObject);
var
    i,count:integer;
    staPanleWidth:Integer;
begin
    progress:=TProgressbar.Create(form1);
    count:=3000;//进度条的最大值
    staPanleWidth:=status.Panels.Items[1].Width;
    //由于进度条很宽,所以需要改变状态条嵌板的宽度,这里先保存它的宽度。
    status.Panels.Items[1].Width:=150;//改变宽度
    status.Repaint;
    with progress do
    begin
        top:=StatusDrawRect.Top;
        left:=StatusDrawRect.Left;
        width:=StatusDrawRect.Right-StatusDrawRect.Left;
        height:=StatusDrawRect.Bottom-StatusDrawRect.Top;
        //设定进度条的宽度和高度
       visible:=true;
       try
           Parent:=status;//该进度条的拥有者为状态条status
           Min:=0;Max:=Count;//进度条的最大值和最小值
           Step:=1;//设定进度条的步长
           for i:=1 to Count do StepIt;
           ShowMessage('现在,进程条将要从内存中被释放');
        finally
           Free;//释放进度条
        end;//try
    end;//with
    Status.Panels.Items[1].Width:=staPanleWidth;//恢复状态条嵌板的宽度
end;//begin

end.

类似的还可插入其他可视控件,如按钮、位图和动画控件等等。

在状态栏中插入类似进度条的可视控件相关推荐

  1. 文件的上传下载功能的实现(包括进度条)[telerik控件]

    文件的上传下载功能的实现(包括进度条) 1.准备工作 首先我们需要Telerik控件,数据库,上传文件文件夹. Telerik控件: RadUpload.RadProgressManager.RadP ...

  2. elementui 进度条怎么做_小E,Excel中这样的进度条是怎么做出来的?

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务.支持我,也为自己加油! 前面我们分享过如何做进度条: <Excel进度条启示:专 ...

  3. C++ 主程序中打开子程序窗口隐藏,操作控件 遍历窗口控件句柄EnumChildWindows();获取其他程序进度条数据 操作选择框 按钮点击

    1.线程启动子程序  ShowWindow(hWnd, SW_SHOW)显示 ShowWindow(hwnd, SW_HIDE);隐藏 system_hide(L"Odin3.exe&quo ...

  4. python tkinter进度条_在python tkinter中Canvas实现进度条显示的方法

    如下所示: from tkinter import * import time #更新进度条函数 def change_schedule(now_schedule,all_schedule): can ...

  5. android圆形点击效果,Android 三种方式实现自定义圆形页面加载中效果的进度条

    [实例简介] Android 三种方式实现自定义圆形页面加载中效果的进度条 [实例截图] [核心代码] ad376a86-a9aa-49bc-8cea-321bcff2c0c3 └── AnimRou ...

  6. 想建一个带分隔条的label 控件;

    想建一个带分隔条的label 控件: Delphi / Windows SDK/API http://www.delphi2007.net/DelphiBase/html/delphi_2006120 ...

  7. vue树形结构html,怎么在vue中利用递归组件实现一个树形控件

    怎么在vue中利用递归组件实现一个树形控件 发布时间:2021-06-11 17:26:48 来源:亿速云 阅读:81 作者:Leah 本篇文章为大家展示了怎么在vue中利用递归组件实现一个树形控件, ...

  8. C#中如何将光标定位在某个控件中?

    C#中如何将光标定位在某个控件中? 例子:当打开如下界面时,如何将光标定位在Form9界面中的用户名combox1框中? (1)首先将界面Form9事件中的shown选择Form9_Load,如下图所 ...

  9. Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)

    原文:Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定) ------------------------------ ...

最新文章

  1. 本人CCNP、OCP MCSA 证书寻求挂靠
  2. 7.破解的最简单例子
  3. 和Java相关的书籍,想成为架构师的请收藏一下啊
  4. 第三届传智杯全国大学生IT技能大赛(决赛B组)【c++】
  5. Android应用程序的组成部分和Manifest文件(转)
  6. Ifvisible.js – 判断网页中的用户是闲置还是活动状态
  7. unity3d实现序列帧动画
  8. MyBatis学习02
  9. 多屏互动电脑版_手机、电脑屏幕太小怎么办?这4招秒变大屏
  10. fluidsim元件库下载_FluidSIM下载-液压气动仿真软件FluidSIM下载v5.6a 中文版-西西软件下载...
  11. python cnn 股市_荐python3绘制股票K线图的那些坑【一】mpl_finance迁向mplfinance,以及plot独立窗口视图问题!...
  12. 东芝打印机共享怎么设置_如何设置东芝复印机为网络共享打印机?
  13. 微信小程序——云开发实现图片上传到云存储并实时预览当前上传的图片
  14. xp系统计算机怎么连接到网络打印机,windows xp系统如何连接不同网段共享打印机...
  15. antd 项目中使用iconfont图标
  16. 如何利用COOC生成动态排名变化利器可识别的数据格式
  17. 前端jQuery读取本地文件内容
  18. 劝说语合理使用计算机,用一句名言来劝说家长让孩子接触计算机
  19. 产品经理必看电影:当幸福来敲门
  20. 以喷管雷诺数,当地大气压及射流有效温度计算所需质量流量,静温

热门文章

  1. nagios 监控 mysql 读写比 R/W
  2. 如何检测过期的统计信息(转)
  3. 豪鹫闲谈--什么因素影响了我们的工资
  4. 定时器表达式各组成部分详解
  5. 在MVC3项目中结合NInject实现依赖注入
  6. V2EX › 郁闷于Python GUI开发,有没有好的框架啊?
  7. sendmail邮件服务器配置
  8. 继续VISTA下网卡驱动问题
  9. nyoj 61(双线程dp)
  10. 协程的三种同步方式Channel、Mutex、WaitGroup