日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

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

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

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

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

在Office 2000、Internet Explorer以及Netscape 等軟件中,我們可以看到非常漂亮的窗口狀態(tài)條。特別是Netscape Communicator,在它的窗口狀態(tài)條中不僅顯示有文字,而且還有圖形、動(dòng)畫、浮動(dòng)按鈕以及進(jìn)度條。對于Delphi編程人員來說,為一個(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控件是無能為力的了。為了讓窗口狀態(tài)條能包含非文本內(nèi)容,我們需要對現(xiàn)有的TStatusBar控件加以改進(jìn)。在TStatusBar控件的基礎(chǔ)上,我們編寫一個(gè)新的Delphi控件TStatusBarEx。大家知道,Delphi的TStatusBar控件是不能接受其它控件的,所以我們不可能將一個(gè)TImage、TButton等放在TStatusBar上。但是我們接下來要?jiǎng)?chuàng)建的TStatusBarEx控件將可以包容其它的控件。通過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源代碼,請把這段代碼拷貝下來,并且將其保存到文件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中的成員函數(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控件注冊到Delphi 5控件板的Win32頁上
RegisterComponents('Win32', [TStatusBarEx]);

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

end.

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

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

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 国产专区路线 | 国产午夜毛片v一区二区三区 | 亚洲精品一区二区三区四 | 国产免费一级高清淫日本片 | 666夜色666夜色国产免费看 | 久久韩国精品韩国专区 | 中文字幕水野优香在线网在线 | 亚洲在线精品视频 | 欧洲精品视频在线观看 | 国产福利最新手机在线观看 | 日韩欧美成人乱码一在线 | 99re免费99re在线视频手机版 | 好吊色综合网天天高清 | 最近中文字幕2019免费版日本 | 99热国产这里只有精品9九 | 亚洲乱码一二三四区 | 亚洲视频中文 | 国产福利区一区二在线观看 | 国产精品欧美亚洲日本综合 | 香蕉久久夜色精品国产小优 | 天天操比| 久久色网| 欧美色视频日本片免费高清 | 永久免费看黄在线播放 | 国产精品视频一区二区三区 | 中文字暮文字暮 | 日韩精品视频免费 | 久久久这里只有精品加勒比 | 国产美女又黄又爽又色视频网站 | 午夜资源在线 | 久久99国产精品免费观看 | 国产一区二区精品久久凹凸 | 在线免费观看亚洲视频 | 午夜在线视频国产极品片 | 欧美绿帽 | 人人玩人人添人人澡免费 | 青草热久精品视频在线观看 | 天天操夜夜干 | 国产成人亚洲综合一区 | 国产午夜精品久久久久九九 | 97成人免费碰碰碰视频 |