在窗体上放一个进度条一个、statusbar1
procedure tform1.statusbar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
  pb1.Parent:=statusbar1;
  pb1.BoundsRect:=rect;end;

解决方案 »

  1.   

        
    CSDN首页 | 新闻聚焦 | 共享软件 | 俱乐部 | 开发文档 | 专家门诊 | 招聘求职 | Linux园地 | 程序员杂志 
    --------------------------------------------------------------------------------
     
    我要回复 | 打印贴子 | 推荐给朋友 | 关闭窗口 
     
    主  题:statusbar中可以放入哪些控件?
    作  者:peterluolaw
    所属论坛:Delphi
    问题点数:10
    回复次数:10
    人气指数:72
    发表时间:2001-9-20 21:31:31
     
    statusbar中可以放入哪些控件?我指的是不使用DRAW,而直接放入的有哪些控件?   转移贴子到  Visual C++ Visual Basic Delphi C/C++ C++ Builder ASM 数据库开发 PowerBuilder ActiveX/COM 数据算法 软件工程 图形/游戏/多媒体 安全技术 网络/通讯 技术书籍 文件格式 C# XML/SOAP 数据仓库 VBA 主页制作 图形处理 ASP PHP Perl Java Javascript JSP 嵌入式开发 .NET Framework lotus开发使用 ADO.NET ASP.NET Web Services Web Forms Windows Forms VB.NET VC.NET Windows 9x/ME Windows NT/2000/XP DOS Office使用 Office开发 Exchange server IIS 程序人生 软件市场 程序员考试 人才热线 建议和意见 灌水乐园 走向海外 程序员杂志 软件使用 资源使用 我看软件 寻找软件 行业软件 软件评测 Linux/Unix 硬件指南 程序员大本营 | 删除贴子 | 加到精华区  
    回复贴子: 
     qiubolecn(qiubole) 回复于2001-9-21 1:38:18 得0分删除回复  
    无  
     machin(刷新一下) 回复于2001-9-21 8:51:27 得0分删除回复    TEdit  
     xiaosanshao() 回复于2001-9-21 9:57:08 得0分删除回复  
    这个吗?一点沙子都容纳不了阿  
     Kingron(戒网中……) 回复于2001-9-21 10:19:20 得0分删除回复  
    自己继承一下,什么东西都可以放!  
     newyj(方恨少;寻找第二把刷子的人) 回复于2001-9-21 11:00:11 得5分删除回复  
    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls, StdCtrls;
    type
      TForm1 = class(TForm)
        sb: TStatusBar;
        Button2: TButton;
        procedure Button2Click(Sender: TObject);
        procedure sbDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
          const Rect: TRect);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    var
      edt:Tedit;
      cmb:TComboBox;
      btn:Tbutton;{$R *.DFM}//1.设状态条某一panel的Style为psOwnerDraw.
    //2.在状态条的OnDrawPanel事件中写代码:
    //我放了3个控件进去procedure TForm1.Button2Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=0 to 2 do
      sb.Panels[i].Style := psOwnerDraw;  if edt=nil then
      begin
        edt:=TEdit.Create(self);
        edt.Parent := sb;  end;
      if cmb=nil then
      begin
        cmb:=TComboBox.Create(self);
        cmb.Parent := sb;
      end;
      if btn=nil then
      begin
        btn := TButton.Create(self);
        btn.Parent := sb;
      end;end;procedure TForm1.sbDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
      const Rect: TRect);
    begin
      if Panel =sb.Panels[0] then
      begin
        edt.Width := Rect.Right-Rect.left;
        edt.Left:=Rect.Left;
        edt.Height  := Rect.Bottom-Rect.Top;
        edt.Top := Rect.Top;
      end;
      if Panel=sb.Panels[1] then
      begin
        cmb.Width := Rect.Right-Rect.left;
        cmb.Left:=Rect.Left;
        cmb.Height  := Rect.Bottom-Rect.Top;
        cmb.Top := Rect.Top;
      end;
      if Panel=sb.Panels[2] then
      begin
        btn.Width := Rect.Right-Rect.left;
        btn.Left:=Rect.Left;
        btn.Height  := Rect.Bottom-Rect.Top;
        btn.Top := Rect.Top;
      end;
    end;end.
     
     newyj(方恨少;寻找第二把刷子的人) 回复于2001-9-21 11:04:20 得5分删除回复  
    Kingron(戒网中……)的方法
    需要扩展一下statusbar,加一个属性就行.分归我了.//----------------------------------------------------------------------//
    //扩展StatusBar
    //加入特性:允许在状态条上加入任意控件
      type
      TMStatusBar=Class(TStatusBar)
      private
      protected
      public
        constructor Create(AOwner: TComponent); override;
      published
      end;//TMStatusBar 事件扩展
      constructor TMStatusBar.Create(AOwner: TComponent);
      begin
            inherited Create(AOwner);
            ControlStyle:= ControlStyle + [csAcceptsControls];
      end;
     
     afeisky(刀光剑影(离开xkx@MUD的日子)) 回复于2001-9-21 11:07:26 得0分删除回复  
    可以放到很多控件的啊.楼上的方法也行.  
     zenartus(投入者) 回复于2001-9-21 12:25:39 得0分删除回复  
    高手高手,佩服佩服  
     zds0707(周) 回复于2001-9-21 12:38:36 得0分删除回复  
    佩服佩服  
     peterluolaw(木瓜) 回复于2001-9-25 22:16:25 得0分删除回复  
    实际上,可以直接放入STATUSBAR的控件有3个:TBUTTON,TIMAGE,TPROGRESSBAR,方法非常简单:BUTTON.PARENT:=STATUBAR!   
    --------------------------------------------------------------------------------
     
    我要回复:(请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德)  
    如果你只是觉得这个贴子好,而没想留言的话,请点击后面的贴子提前连接。   
    返回问题 | 关闭窗口   
       
     
               
    美达美简介 广告服务 英语步步高 程序员大本营 百联美达美科技有限公司  版权所有 
       
      
     
      

  2.   

    // 定义
      ProgressBar: TProgressBar;
    // 创建
      ProgressBar := TProgressBar.Create(Self);
      ProgressBar.Parent := StatusBar1;
      ProgressBar.SetBounds( 0, 0, StatusBar1.Panels[0].Width, StatusBar1.ClientHeight ); // 设置边界,可能还需要调整一下然后你就使用ProgressBar吧,用完后FREE掉
      
      

  3.   

    STATUSBAR 不是有PANEL 吗!在PANEL上不就可以做了吗!