• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        增強Delphi的TStatusBar控件

        增強Delphi的TStatusBar控件

        更新時間:2022-05-08 文章作者:未知 信息來源:網絡 閱讀次數:

        在Office 2000、Internet Explorer以及Netscape 等軟件中,我們可以看到非常漂亮的窗口狀態條。特別是Netscape Communicator,在它的窗口狀態條中不僅顯示有文字,而且還有圖形、動畫、浮動按鈕以及進度條。對于Delphi編程人員來說,為一個窗口創建狀態條是非常容易的事情,Delphi所提供的TStatusBar可視化控件可以讓我們快速地實現狀態條。然而令人遺憾的是用TStatusBar創建的狀態條僅能顯示文字。本文向大家介紹如何在Delphi程序中創建更為漂亮的StatusBar。

        ---- 要創建類似Netscape風格的狀態條,現有的Delphi控件是無能為力的了。為了讓窗口狀態條能包含非文本內容,我們需要對現有的TStatusBar控件加以改進。在TStatusBar控件的基礎上,我們編寫一個新的Delphi控件TStatusBarEx。大家知道,Delphi的TStatusBar控件是不能接受其它控件的,所以我們不可能將一個TImage、TButton等放在TStatusBar上。但是我們接下來要創建的TStatusBarEx控件將可以包容其它的控件。通過TStatusBarEx控件,我們可以使Delphi創建的狀態條跟Netscape的狀態條一樣漂亮,讓其可以包含圖形、動畫、進度條等等。

        ---- 在Delphi中,一個控件上能否成為其它控件的父控件取決于此控件的ControlStyle屬性。ControlStyle屬性是集合類型的,如果此集合包含csAcceptsControls元素,則它能接受其它控件;否則,它就不能成為其它控件的父控件。ControlStyle屬性只能在控件的構造函數(Constructor)中指定,在程序運行時它是不能被改變的。所以如果希望窗口狀態條上面能包含其它控件,我們只需要在繼承類中重載TStatusBar控件的Constructor函數,并且讓控件的集合屬性ControlStyle中包含csAcceptsControls即可。 TStatusBarEx控件的實現

        ---- 以下是實現TStatusBarEx控件的Delphi源代碼,請把這段代碼拷貝下來,并且將其保存到文件StatusBarEx.PAS中去。然后用Delphi打開StatusBarEx.PAS文件,之后選擇“Component | Install Component …”,將TStatusBarEx控件安裝。

        //文件名:StatusBarEx.pas
        unit StatusBarEx;

        interface

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

        type

        //定義About屬性的屬性編輯器
        TAbout = class(TPropertyEditor)
        public
        procedure Edit; override;
        function GetAttributes: TPropertyAttributes; override;
        function GetValue: string; override;
        end;

        //定義TStatusBarEx控件
        TStatusBarEx = class(TStatusBar)
        private
        { Private declarations }
        FAbout:TAbout;
        protected
        { Protected declarations }
        public
        { Public declarations }
        constructor Create(AOwner: TComponent); override;
        published
        { Published declarations }
        property About: TAbout read FAbout;
        end;

        procedure Register;

        implementation

        constructor TStatusBarEx.Create(AOwner: TComponent);
        begin
        inherited Create(AOwner);

        {為了讓TStatusBarEx控件能接受其它控件,必須
        使ControlStyle屬性(集合類型)包含csAcceptsControls元素}
        ControlStyle:= ControlStyle + [csAcceptsControls];
        end;

        //以下是TAbout中的成員函數的實現
        procedure TAbout.Edit;
        begin
        Application.MessageBox('TStatusBarEx for Delphi 5'#13#10
        +'Written by Simon Liu'#13#10
        +'Email:simon_liu@263.net',
        'About TStatusBarEx',MB_ICONINFORMATION);
        end;

        function TAbout.GetAttributes: TPropertyAttributes;
        begin
        Result := [paDialog, paReadOnly];
        end;

        function TAbout.GetValue: string;
        begin
        Result := '(Simon)';
        end;

        procedure Register;
        begin
        //將TStatusBarEx控件注冊到Delphi 5控件板的Win32頁上
        RegisterComponents('Win32', [TStatusBarEx]);

        //為About屬性注冊屬性編輯器
        RegisterPropertyEditor(typeInfo(TAbout), TStatusBar,
        'About', TAbout);
        end;

        end.

        ---- 使用TStatusBarEx控件,我們可以非常容易地在StatusBar上增添其它的內容了。比如,如果想要在狀態條上顯示一個圖片,只要在TStatusBarEx控件上放一個Image控件;想要添加一個進度條,只需在上面加一個ProgressBar就行了!

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲阿v天堂在线| 亚洲中文字幕无码久久综合网| 色婷婷六月亚洲婷婷丁香| 热久久这里是精品6免费观看| 国产精品亚洲w码日韩中文| 亚州**色毛片免费观看| 亚洲v国产v天堂a无码久久| 免费精品国自产拍在线播放| 日本最新免费不卡二区在线| 日韩亚洲人成在线综合| 亚洲А∨精品天堂在线| 国产精品1024在线永久免费| 亚洲国产精品成人久久| 99久热只有精品视频免费观看17| 亚洲白嫩在线观看| 男人的好看免费观看在线视频| 亚洲色偷精品一区二区三区| 免费国产成人午夜私人影视| 一级毛片免费毛片毛片| 亚洲av无码一区二区三区不卡| 久久久国产精品无码免费专区| 亚洲一区电影在线观看| 成人网站免费观看| 国产成人va亚洲电影| 国产a v无码专区亚洲av| 免费观看成人久久网免费观看| 亚洲福利一区二区精品秒拍| 日韩成全视频观看免费观看高清| 香蕉视频在线观看免费| 国产亚洲精品精华液| 四虎国产精品免费久久| 曰批免费视频播放在线看片二| 久久国产亚洲精品麻豆| 久久WWW免费人成人片| 日韩毛片在线免费观看| 亚洲欧洲第一a在线观看| 永久在线毛片免费观看| 免费萌白酱国产一区二区三区| 亚洲一级毛片中文字幕| 久久影视综合亚洲| 成人免费一级毛片在线播放视频|