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

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

        增強(qiáng)Delphi的TStatusBar控件

        增強(qiáng)Delphi的TStatusBar控件

        更新時(shí)間:2022-05-08 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

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

        ---- 要?jiǎng)?chuàng)建類似Netscape風(fēng)格的狀態(tài)條,現(xiàn)有的Delphi控件是無(wú)能為力的了。為了讓窗口狀態(tài)條能包含非文本內(nèi)容,我們需要對(duì)現(xiàn)有的TStatusBar控件加以改進(jìn)。在TStatusBar控件的基礎(chǔ)上,我們編寫一個(gè)新的Delphi控件TStatusBarEx。大家知道,Delphi的TStatusBar控件是不能接受其它控件的,所以我們不可能將一個(gè)TImage、TButton等放在TStatusBar上。但是我們接下來(lái)要?jiǎng)?chuàng)建的TStatusBarEx控件將可以包容其它的控件。通過(guò)TStatusBarEx控件,我們可以使Delphi創(chuàng)建的狀態(tài)條跟Netscape的狀態(tài)條一樣漂亮,讓其可以包含圖形、動(dòng)畫、進(jìn)度條等等。

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

        ---- 以下是實(shí)現(xiàn)TStatusBarEx控件的Delphi源代碼,請(qǐng)把這段代碼拷貝下來(lái),并且將其保存到文件StatusBarEx.PAS中去。然后用Delphi打開(kāi)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中的成員函數(shù)的實(shí)現(xiàn)
        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控件注冊(cè)到Delphi 5控件板的Win32頁(yè)上
        RegisterComponents('Win32', [TStatusBarEx]);

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

        end.

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

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 免费看片在线观看| 一区二区三区免费精品视频 | 亚洲欧洲视频在线观看| 久久久久久久99精品免费观看| 亚洲综合无码AV一区二区| 韩国免费A级毛片久久| 亚洲AV无码一区二区三区DV| 免费观看男人吊女人视频| 亚洲成a人片77777老司机| 亚洲美女免费视频| 久久久国产亚洲精品| 高清国语自产拍免费视频国产| 亚洲AV女人18毛片水真多| 亚洲中文字幕伊人久久无码| 三级黄色免费观看| 久久久久亚洲av无码专区导航| 巨波霸乳在线永久免费视频| 久久乐国产综合亚洲精品| 亚洲国产日韩成人综合天堂| 97在线视频免费公开视频| 91大神亚洲影视在线| 曰批全过程免费视频观看免费软件| 免费在线观看中文字幕| 日本不卡免费新一区二区三区| 亚洲码在线中文在线观看| 男女交性永久免费视频播放| 2022免费国产精品福利在线| 水蜜桃亚洲一二三四在线| 好大好硬好爽免费视频| 两个人的视频www免费| 亚洲成aⅴ人片在线观| 伊人久久亚洲综合影院| 精品亚洲永久免费精品| 亚洲第一综合天堂另类专| 亚洲色大成网站www永久一区| 亚洲性线免费观看视频成熟| 一道本在线免费视频| 亚洲国产精品线观看不卡| 亚洲精品无码久久久| 国产成人午夜精品免费视频| 久久国产乱子伦精品免费午夜 |