zoukankan      html  css  js  c++  java
  • Delphi在StatusBar上绘制ProgressBar



    首先,在TForm的私有域,也就是private下设置两个变量ProgressBar、ProgressBarRect,其中ProgressBar为 TProgressBar类型,ProgressBarRect为TRect类型,完整的定义如下:

    type
      TForm1 = class(TForm)
        ......
      private
        ProgressBar: TProgressBar;
        ProgressBarRect: TRect;
      end;

    然后在StatusBar的DrawPanel事件中添加代码:

      ProgressBarRect := Rect;

    完整代码如下:

    procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    begin
      ProgressBarRect := Rect;
    end;

    最后我们用一个Button组件来测试,代码如下:

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i, StepCount: integer;
    begin
      ProgressBar := TProgressBar.Create(Form1);
      StepCount := 10000;
      with ProgressBar do
      begin
        Top := ProgressBarRect.Top;
        Left := ProgressBarRect.Left;
        Width := ProgressBarRect.Right - ProgressBarRect.Left;
        Height := ProgressBarRect.Bottom - ProgressBarRect.Top;
        Visible := True;
        //Smooth := True;

        try
          Parent := StatusBar1;
          Min := 0;
          Max := StepCount;
          for i := 1 to stepCount do
          begin
            StepIt;
          end;
          MessageDlg('状态栏进度条演示操作已完成!', mtInformation, [mbOK], 0);
        finally
          Free;
        end;
      end;
    end;

    http://www.lsworks.net/article/43.html

  • 相关阅读:
    FR #3题解
    L3-005. 垃圾箱分布
    L2-004. 这是二叉搜索树吗?
    L2-002. 链表去重
    L1-009. N个数求和
    L3-003. 社交集群
    L3-004. 肿瘤诊断
    L2-001. 紧急救援
    L3-002. 堆栈
    L2-007. 家庭房产
  • 原文地址:https://www.cnblogs.com/findumars/p/5010750.html
Copyright © 2011-2022 走看看