程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi面向對象編程的20條規則(4)

Delphi面向對象編程的20條規則(4)

編輯:Delphi

你還應該使用屬性或是方法來初始化派生窗體或是對話框,或是訪問他們的最終狀態。正如我前文所說的,你應該使用構造器來完成初始化工作

規則11:顯示組件屬性(Expose Components PropertIEs)

當你需要訪問其他窗體的狀態時,你不應該直接訪問它的組件。因為這樣會將其他窗體或其它類的代碼和用戶界面結合在一起,而用戶界面往往是一個應用程序中最容易發生改變的部分。最好的方法是,為你需要訪問的組件屬性定義一個窗體屬性。要實現這一點,可以通過讀取組件狀態的Get方法和設置組件狀態的Set方法實現。

假如你現在需要改變用戶界面,用另外一個組件替換現有的組件,那麼你只需做的是修改與這個組件屬性相關的Get方法和Set方法,而不必查找,修改所有引用這個組件的窗體和類的源碼。詳細實現方法請參見下面的代碼:

private
function GetText:String;
procedure SetText(const Value:String);
public
property Text:String;
read GetText write SetText;
function TformDialog.GetText:String;
begin
Result:=Edit1.Text;
end;
procedure TformDialog.SetText(const Value:String);
begin
Edit1.Text;=Value;
end;

規則12:屬性數組(Array PropertIEs)

如果你需要處理窗體中的一系列變量,你可以定義一個屬性數組。如果這些變量是一些對於窗體很重要的信息,你還可以把他們定義成窗體默認的屬性數組,這樣你就可以直接使用SpecialForm[3]來訪問他們的值了。

下面的代碼顯示了如何將一個listbox組件的項目定義成窗體默認的屬性數組。

type
TformDialog =class(TForm)
private
listItems:TlistBox;
function GetItems(Index:Integer):String;
procedure SetItems(Index:Integer:const Value:String);
public
property Items[Index:Integer]:string;
end;
function TFormDialog.GetItems(Index:Integer):string;
begin
if Index >=ListItems.Items.Count then
raise Exception.Create(‘TformDialog:Out of Range’);
Result:=ListItems.Items[Index];
end;
procedure TformDialog.SetItems(Index:Integer;const alue:string);
begin
if Index >=ListItems.Items.Count then
raise Exception.Create(‘TformDialog:Out of Range’);
ListItems.Items[Index]:=Value;
end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved