假設你想測試名為TNewComponent類型的新部件
unit Unitl;
interface
uses SysUtils
Newtest;
type
Tforml = class(TForm)
procedure FormCreate(Sender: TObject)
private
{ private申 明 }
public
{ public申 明 }
NewComponent: TNewComponent;
end;
var
Forml: TForml;
implementation
{$R *
procedure TForml
begin
NewComponent := TNewComponent
NewCompanent
NewCompanent
end;
end
部件使用者在Delphi環境中開發
部件用戶和部件編寫者最基本的區別是用戶處理對象的實例
建立新部件一般有兩個理由
● 改變類型的缺省情況
● 為部件增加新的功能
目的都是為了建立可重用對象
在程序設計中
設計部件也是這個道理
創建新部件的另一個原因是想給已有的部件增加新的功能
Object Pascal語言為對象的各部分提供了四個級別的訪問控制
除非特地描述
下表列出各保護級別
表
━━━━━━━━━━━━━━━━━━━
保護級 用處
───────────────────
private 隱藏實現細節
protected 定義開發者接口
public 定義運行時接口
published 定義設計時接口
━━━━━━━━━━━━━━━━━━━
所有的保護級都在單元級起作用
⑴ 隱藏實現細節
如果對象的某部分被聲明為private
對象類型的private部分對於隱藏詳細實現是很重要的
下面是一個演示防止用戶訪問private域的例子
unit HideInfo;
interface
uses SysUtils
Dialogs;
type
TSecretForm = class(TForm) { 聲明新的窗體窗口 }
procedure FormCreate(Sender: TObject)
private { declare private part }
FSecretCode: Integer; { 聲明private域 }
end;
var
SecretForm: TSecretForm;
implementation
procedure TSecretForm
begin
FSecretCode :=
end;
end
unit TestHide; { 這是主窗體庫單元 }
interface
uses SysUtils
Dialogs
type
TTestForm = class(TForm)
procedure FormCreate(Sender: TObject)
end;
var
TestForm: TTestForm;
implementation
procedure TTestForm
begin
SecretForm
end;
end
⑵ 定義開發者接口
將對象某部分聲明為protected
⑶ 定義運行時接口
將對象的某一部分定義為public可使任何代碼訪問該部分
因為對象的public部分可在運行時為任何代碼訪問
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25123.html