Delphi10.3狀態欄上顯示進度條/圖片


1】拖動一個StatusBar1到窗口上,並添加三個StatusPanel,我們將ID為2的StatusPanel作為進度條顯示;

 


2】聲名全局變量

private
    { Private declarations }
        //聲明一個進度條對象
    MyProg:TProgressbar;//要在界面上放一個TProgressbar,否則會提示找不到單元
//聲明進度條要插入顯示的區域 MyRect2:TRect;

3】FormShow事件里創建進度條TProgressbar對象 

procedure TForm6.FormShow(Sender: TObject);
begin
 //創建TProgressbar對象
  MyProg:=TProgressbar.Create(Application);
      //父類為狀態欄
  MyProg.Parent:=StatusBar1;
end;

4】設置顯示 范圍

procedure TForm6.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
  const Rect: TRect);
begin
if  Panel.ID =2 then MyRect2:=Rect;
end;

5】設置為自畫模式 


6】進度條 改變 並顯示

procedure TForm6.Button1Click(Sender: TObject);
begin
  //設定進度條狀態
  with MyProg do
  begin
    //設置長度、寬度和高度
    left:=MyRect2.Left;
    top:=MyRect2.Top;
    width:=MyRect2.Right-MyRect2.Left;
    height:=MyRect2.Bottom-MyRect2.Top;
    //設置進度條的值
    Min:=0;
    Max:=100;
    Position:=Position+10;
    //進度條可見
    Visible:=True;
  end;
end;

7】窗口大小變了,進度條長度也隨之改變 

procedure TForm6.FormResize(Sender: TObject);  //窗口大小變了,進度條長度也隨之改變
begin
  with MyProg do
  begin
    //設置長度、寬度和高度
    left:=MyRect2.Left;
    top:=MyRect2.Top;
    width:=MyRect2.Right-MyRect2.Left;
    height:=MyRect2.Bottom-MyRect2.Top;
  end;
end;

 


類似地,在狀態欄里顯示圖片

  private
    { Private declarations }
      Image1:TImage;//聲明一個圖片對象
     MyRect0:TRect;//聲明圖片要插入的范圍

procedure TForm6.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
  const Rect: TRect);
begin
   if  Panel.ID =1 then MyRect0:=Rect;//在狀態欄ID=1顯示圖片
end;

procedure TForm3.Button2Click(Sender: TObject);
begin//顯示圖片1
        with Image1 do
    begin
      Parent:=StatusBar1;
     // Picture.LoadFromFile('OK.jpg');
      left:=MyRect0.Left;
      Top:=MyRect0.Top;
      Width:=MyRect0.Right-MyRect0.Left;
      Height:=MyRect0.Bottom-MyRect0.Top;
      Visible:=True;
      BringToFront;
    end;
end;

procedure TForm3.Button3Click(Sender: TObject);
begin//顯示圖片2
        with Image2 do
    begin
      Parent:=StatusBar1;
     // Picture.LoadFromFile('OK.jpg');
      left:=MyRect0.Left;
      Top:=MyRect0.Top;
      Width:=MyRect0.Right-MyRect0.Left;
      Height:=MyRect0.Bottom-MyRect0.Top;
      Visible:=True;
      BringToFront;
    end;
end;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM