六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

增強Delphi的TStatusBar控件

[摘要]在Office 2000、Internet Explorer以及Netscape 等軟件中,我們可以看到非常漂亮的窗口狀態條。特別是Netscape Communicator,在它的窗口狀態條中不僅...
在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:[email protected]',
'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就行了!


主站蜘蛛池模板: 亚洲 欧洲 日产 韩国在线 | 色综合久久久久久 | 性荡视频在线播放视频 | 欧美午夜色视频国产精品 | 日韩3区| 亚洲五月激情 | 午夜视频吧| 天天干在线播放 | 色综合久久伊人 | 亚洲第一在线视频 | 色偷偷亚洲女人天堂观看欧 | 日韩aa| 日本亚洲欧洲高清有码在线播放 | 在线波多野结衣 | 在线亚洲综合 | 色综合久久综合网欧美综合网 | 日韩一区二区三区视频在线观看 | 中日韩免费视频 | 欧美视频在线免费看 | 亚洲大片免费看 | 日本欧美人xxxxx在线观看 | 天天干天天舔天天操 | 日本三级理论 | 婷婷六月久久综合丁香可观看 | 欧美一级黄色片子 | 亚洲人成网站在线观看播放 | 婷婷综合激情五月中文字幕 | 亚洲网站黄色 | 亚洲国产成人精品区 | 视频一区视频二区在线观看 | 亚洲国产精品欧美日韩一区二区 | 三级第一页 | 欧美特级视频 | 中文字幕日韩一区二区不卡 | 天天上天天操 | 日本欧美高清 | 日本免费看片 | 欧美在线视频第一页 | 青春草在线观看精品免费视频 | 亚洲成a人v | 日韩福利视频精品专区 |