⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18.htm

📁 对于学习很有帮助
💻 HTM
字号:
<html><!-- #BeginTemplate "/Templates/text.dwt" --><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--.title11 {  font-family: "黑体"; font-size: 11pt; color: #339900; font-weight: bold}.text11 {  font-family: "宋体"; font-size: 11pt; color: #009933; font-weight: normal}--></style></head><body bgcolor="#FFFFFF" background="../q1.jpg"><span class="text11"></span> <table width="91%" border="0" height="371" class="title11">  <tr class="title11" align="center">     <td height="26" class="title11"><!-- #BeginEditable "title" -->状态条插入可视控件 <!-- #EndEditable --></td>  </tr>  <tr class="text11" align="left" valign="top">     <td class="text11"><!-- #BeginEditable "text" -->  首先,在FROM中放置一个状态条控件Status。调节Status.Panels,在其中插入3个状态条嵌板。把第二个嵌板的参数Style设置成psOwnerDraw。这一点很重要,如果没有这样做,将永远无法显示文字以外的东西。然后在状态条的OnDrawPanel事件中插入一行StatusDrawRect:=rect;以记录参数Style设置成psOwnerDraw的嵌板的坐标。&lt;br&gt;         第二步,在FROM的Private中申明一个TProgressBar类型的变量Progress。然后在一个菜单的消息响应过程中调用Create方法把它建立起来,再设定状态条为该进程条的父窗口,进而设定进程条的一些必要参数。例如:最大值、最小值、原点坐标、高度和宽度等。&lt;br&gt;         最后编译一下该程序,你就会发现在状态条中被插入了一个运动着的进程条。&lt;br&gt;   类似地,你还可以在状态条中插入其他可视控件,如:按键、位图和动画控件等等。&lt;br&gt;       以下是范例程序:&lt;br&gt; &lt;b&gt;&lt;font color=&quot; #000000&quot;&gt;type<br>      TForm1 = class(Tform)//定义一个窗口类<br>      Status: TStatusBar;<br>      MainMenu1: TMainMenu;<br>      file1: TMenuItem;<br>      insertprocressbar1: TMenuItem;<br>      N1: TMenuItem;<br>      exit1: TMenuItem;<br>      procedure FormCreate(Sender: Tobject);<br>      procedure StatusDrawPanel(StatusBar: TStatusBar; Panel:<br>      TStatusPanel;const Rect: Trect);<br>      procedure FormDestroy(Sender: Tobject);<br>      procedure exit1Click(Sender: Tobject);<br>      procedure insertprocressbar1Click(Sender: Tobject);<br>      private<br>      colorindex : integer; BookOpen:Boolean;<br>      ssjpg:Tbitmap; progress:Tprogressbar;<br>      StatusDrawRect:Trect; //记录要插入状态条特技的坐标范围<br>      public<br>      { Public declarations }<br>      end;<br>      var<br>      Form1: TForm1;<br>      implementation<br>      {$R *.DFM}<br>      procedure TForm1.FormCreate(Sender: Tobject);<br>      begin<br>      end;<br>      procedure TForm1.StatusDrawPanel(StatusBar: TStatusBar;<br>      Panel: TStatusPanel; const Rect: Trect);<br>      begin<br>      StatusDrawRect:=rect; //记录要实现状态条特技的坐标范围<br>      end;<br>      procedure TForm1.exit1Click(Sender: Tobject);<br>      begin<br>      close;<br>      end;<br>      procedure TForm1.insertprocressbar1Click(Sender: Tobject);<br>      var I,count:integer;<br>      staPanleWidth:integer;<br>      begin<br>      progress:=Tprogressbar.create(form1);<br>      count:=3000; //进程条的最大值<br>      staPanleWidth:=status.Panels.Items[2].width;<br>      //由于进程条的很宽,所以需要改变状态条嵌板的宽度,这里先保存它的宽度。<br>      status.Panels.Items[2].width:=150; // 改变宽度<br>      status.repaint;<br>      with progress do<br>      begin<br>      top:=StatusDrawRect.top;<br>      left:=StatusDrawRect.left;<br>      width:=StatusDrawRect.right-StatusDrawRect.left;<br>      height:=StatusDrawRect.bottom-StatusDrawRect.top;<br>      //设定进程条的宽度和高度<br>      visible:=true;<br>      try<br>      Parent := status; //该进程条的拥有者为状态条status<br>      Min := 0; Max := Count; //进程条的最大和最小值<br>      Step := 1; //进程条的步长<br>      for I := 1 to Count do<br>      Stepit; // 累加进程条<br>      ShowMessage('现在,进程条将要从内存中被释放');<br>      finally<br>      Free; //释放进程条<br>      end; //try<br>      end; //with<br>      status.Panels.Items[2].width:=staPanleWidth; //恢复状态条嵌板的宽度<br>      end; //begin <br>      end.<!-- #EndEditable --></td>  </tr></table><table width="91%" border="0">  <tr class="title11" align="right">     <td><a href="delphi.html"><font color="#66FF00">回到标题列表</font></a></td>  </tr></table></body><!-- #EndTemplate --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -