??xml version="1.0" encoding="utf-8" standalone="yes"?>www.九色在线,九色精品免费永久在线,精品国产电影http://www.aygfsteel.com/liaojiyong/category/14249.htmlzh-cnWed, 28 Feb 2007 19:01:40 GMTWed, 28 Feb 2007 19:01:40 GMT60Delphi 5 寫碼標準http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98319.htmlliaojiyongliaojiyongTue, 06 Feb 2007 07:15:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98319.htmlhttp://www.aygfsteel.com/liaojiyong/comments/98319.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98319.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/98319.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/98319.html目錄

1.0 介
2.0 一般程式碼格式
2.1 ^格
2.2 邊界
2.3 Begin...End
3.0 Object Pascal
3.1 括號
3.2 保留字與關鍵?br />3.3 E序與函?br />3.4 變數
3.4.1 變數命名與格?br />3.4.2 區域變?br />3.4.3 全域變數

3.5 型態

3.5.1 大小寫慣?br />3.5.2 點數型?br />3.5.3 列舉型態QEnumerated TypesQ?br />3.5.4 Variant ?OleVariant 型態
3.5.5 i構型態

3.6 陌句(statementsQ?
3.6.1 if 陌?br />3.6.2 case 陌?br />3.6.3 while 陌?br />3.6.4 for 陌?br />3.6.5 repeat 陌?br />3.6.6 with 陌?/p>

3.7 i構化異常處?
3.7.1 try...finally
3.7.2 try...except

3.8 別QclassesQ?/p>

3.8.1 命名/格式
3.8.2 Ƅ位QFieldsQ?br />3.8.3 Ҏ QMethodsQ?/p>

命名/格式
靜態ҎQStatic MethodsQ?
虛擬/動態ҎQVirtual/Dynamic MethodsQ?
抽象ҎQAbstract MethodsQ?
屬性存取方法(Property-Access MethodsQ?
3.8.4 屬性(PropertiesQ?
4.0 檔案QFileQ?br />4.1 Project Files
4.2 Form Files
4.3 Data Module Files
4.4 Remote Data Module Files
4.5 Unit Files

4.5.1 一般單元結?br />4.5.2 一般用途的單元
4.5.3 元g單元

4.6 檔案表頭QFile HeadersQ?/p>

5.0 Forms and Data Modules
5.1 Forms

5.1.1 Form 型態命名標準
5.1.2 Form 實體命名標準
5.1.3 自動建立?Forms
5.1.4 建立 Modal Form 的函?/p>

5.2 Data Modules

5.2.1 Data Module 型態命名標準
5.2.2 Data Module 實體命名標準

5.3 Remote Data Modules

6.0 套gQPackagesQ?br />6.1 埯時期 v.s. a計時期套g
6.2 檔案命名標準

7.0 元gQComponentsQ?br />7.1 使用者自a元?br />7.2 元g實體命名慣例

7.2.1 元g型態字首QComponent Type PrefixesQ?br />7.2.2 元g修飾詞名E(Component Qualifier NameQ?/p>

8.0 補充說明

--------------------------------------------------------------------------------

1.0 介
這䆾文g修改?Delphi 5 Developer's Guide 裡面?coding standardsQ該文所的寫風D Borland 大致相同Q我在編寫這䆾文g時也做了微幅的修改,刪除一些不斷重複的字句Q例如,「某某名E在命名時應該與它的目的相符」這類一般性的原則Q只要是「命名」,不管是專案名E,檔案名稱Q元Ӟ函式Q變?...都應該取有意的名稱?/p>

這䆾文g不可能照到所有細Q但是比較重要的部分都提CQ另外一?"Delphi 5 元g型態字首" 則包含了元g命名的字首徏議清單,應該也有參考價倹{?/p>

依照文g中的規範來撰寫程式,不但可ɽE式比較清晰易讀Q也能夠讓整個開發團隊的E式風格保持一_這樣組成員在看別h的程式碼時會輕鬆一些。如果這些風格和你原有的習慣相差很大,或者你正好接手E護別h的程式碼Q以下工具可能對你有用處Q?/p>

DelForExp - 可以q你重新R排 Delphi E式{?/p>

GExperts - 包含a多提高 Delphi 生產力的工具Q其?Code Proofreader 能夠自動q你修正E式的大小寫失誤?/p>

2.0 一般程式碼格式
2.1.^格
每層的縮格為兩個空白字元,不要使用 Tab 字元QTools | Editor options 裡面?Use tab character 達R不要NQ,以免E式到了別台機器或用其他文字編輯器示、列印時C樣?/p>

2.2.邊界
邊界a定?80 個字元(此為 Delphi 預設|Q當E式太镯超過邊界時應予以折行,不過於那些剛好有一個英文字跨在邊界上的情Ş則可以通容。折行時請盡量斷在逗號或者運子後面Q折下來的那行程式碼應該要往右縮|兩個空白字元)?/p>

2.3.Begin...End
begin ?end 應該寫在新的一行,且兩者要齊。下面的W一個例子是錯誤的示,W二個是正確的:

for I := 0 to 10 do begin // 錯誤
for I := 0 to 10 do // 正確
begin
但是?begin 是接?else 後面時則可以破例寫在 else 後面Q?/p>


if (I > 9) thenbegin  ...endelse begin  SomeStatement;end;

當然Qelse 之後?begin 要寫在新的一行也可以?/p>

〔回目錄?/p>


--------------------------------------------------------------------------------

3.0 Object Pascal
3.1.括號
左括號的右邊和右括號的左邊不應該有空白,參考下面的例子Q?/p>

CallProc( AParameter ); // 錯誤
CallProc(AParameter); // 正確
3.2 保留字與關鍵?br />Object Pascal 的保留字與關鍵字應該全部都用英文寫?/p>

3.3 E序與函?br />3.3.1 命名/格式
函式名稱W一個英文字母應該大寫,其後使用 Camel-capped 格式以便於閱讀。以下是錯誤C範Q?/p>

procedure thisisapoorlyformattedroutinename;

適當的名E應該像下面這個:

procedure ThisIsMuchMoreReadableRoutineName;

函式名稱應該要能代表它的功能Q讓夠不看內部細q道該函式大概在做什麹{當函式埯了某項動作,我們通常會以一個動詞為首來命名Q例如:

procedure FormatHardDrive;

a定某個變數值的函式應該?Set 為字首:

procedure SetUserName;

取得某個變數值的函式應該?Get 為字首:

procedure GetUserName: string;

3.3.2 形式參數
格式
相同型態的參數應該合併在一個語句中Q?/p>

procedure Foo(Param1, Param2, Param3: Integer; Param4: string);

命名
參數名稱應該W合它們所代表的意。參數名E可以在前面加上大寫字母 'A'Q?/p>

procedure SomeProc(AUserName: string; AUserAge: integer);

?'A' 開頭的參數命名方式是一項不成文的慣例,這麼做可以避免當參數名稱和屬性或Ƅ位名稱相同時所造成的؜淆?/p>

參數順序
以下於參數順序的徏議在使用「暫存器呼叫慣例」時特別有幫助(在效能上Q?/p>

最常用的參數擺在第一位,較少用的參數依左臛_的順序排列?
作為輸入的參數放左邊Q作出的參數攑֏邊?
比較一般性的參數攑֜左邊Q比較特D的攑֏邊,例如Q?
procedure SomeProc(APlanet, AContinent, ACountry, AState, ACity);

以上關於參數排列的徏議可能會有許多例外情形,例如事g處理函式Q它^是會以 Sender 最為第一個參數?/p>

常數參數
如果參數g會被函式修改Q應該在參數前面冠上 constQ特別是以下這些型態Qrecord, array, ShortString, interface?/p>

名稱衝突
如果你用的兩個單元中有相同的函式名稱Q當你呼叫該函式時,被叫用的是在 uses 子句中排在後面的單元的函式。為了避免這種情況Q你可以明白地指呼叫哪個單元的函式Q例如:

SysUtils.FindClose(SR);

?/p>

Windows.FindClose(Handle);

3.4 變數
3.4.1 變數命名與格?br />變數名稱應和它們的目的相符?br />q圈控制變數通常?i, j ,k 來命名,當然你也可以用像?UserIndex 之類有意的名稱?br />布林變數的名E應該要能充分表?True ?False 的意思?/p>

3.4.2 區域變?br />函式的區域變數恨其他變數的命名規則一樣。暫時性的變數也要有適當的名稱?/p>

當有必要的時候,在一進入函式時就要初始化區域變數。AnsiString 型態的區域變數會被自動初始化為空字串Qinterface ?dispinterface 型態的區域變數會自動被初始化?nilQ?Variant ?OleVariant 區域變數則會被自動初始化為 Unassigned?/p>

3.4.3 全域變數
你應該盡量避免用全域變數,當你真的需要時才用全域變數,而且盡量在一個單元的圍內用,如果一個全域變數會被多個單元用,你應該將它移C個共用的單元內?/p>

〔回目錄?/p>


--------------------------------------------------------------------------------

3.5 型態
3.5.1 大小寫慣?br />如果型態的名E屬g留字Q就全部寫。Win32 API 的型態則全用大寫Q一些比較特D的型態Q你應該遵@ Windows.pas 或其?API 單元裡面的寫法。至於其他的型態Q通常是名EqW一個字母大寫,光採用 Camel-capped 方式Q參考以下範例:


var  MyString: string;    // string 是保留字.  WindowHandle: HWND;  // Win32 API 的型?  AForm: TMyForm;        i: Integer;          // 用小寫的 integer 也無?

3.5.2 點數型?br />不要使用 Real 型態Q它是為了相Ҏ舊的 pascal E式而保留的。一般用Q點數時,請?double 型態Q它?IEEE 定義的標準資料格式。如果需要更大範圍的數|可?ExtendedQ但它是屬於 Intel 規格Q而且 Java 不支援。只有當點數實t佔用的位於i大有意義時才使用 SingleQ例如用另一E語a寫成?DLL 時)?/p>

3.5.3 列舉型態QEnumerated TypesQ?br />列舉型態的名E必須以字母 'T' 開頭Q藉此突它是一個型態。列舉型態中的識別字名稱應該?2? 個和其型態相關的寫英文字母開頭Q例如:

TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);
列舉型態的變數名E可以直接將型態的第一個字?'T' 拿掉來命名,或是其他hҎ意義的名E,例如QFavoriteSongType1, FavoriteSongType2?/p>

3.5.4 Variant ?OleVariant 型態
通常不徏C用這兩E型態,它們通常被用在只有埯時期才能定其型態的時候,例如 COM 和資料nE式a計。你應該只有在撰?COM 盔RE式的時候才使用 OleVariantQ因?Variant 可以有效率地儲存 Delphi 字串Q?OleVariant 則必須將所有字串轉換成 OLE 字串QWideChar 字串Q,而且不會被參考計數-Q它們總是被複製成新的字丌Ӏ?/p>

3.5.5 i構型態
陣列型態
陣列型態的名E開頭冠?'T'Q如果要宣告指標陣列的型態,名稱開頭應該冠上 'P'Q而且要宣告在陣列型態的前面,參考範例:

type
PCycleArray = ^TCycleArray;
TCycleArray = array [1..100] of integer;
陣列的變數在命名時可以直接將開頭?'T' 拿掉作為變數名稱?/p>

a錄型態
和陣列型態的規則一樣,參考下面的例Q?/p>

type
PEmployee = ^TEmployee;
TEmployee = record
EmployeeName: string
EmployeeRate: Double;
end;
〔回目錄?/p>


--------------------------------------------------------------------------------

3.6 陌?br />3.6.1 if 陌?br />比較常發生的情Ş應該攑֜ if/then/else 裡面?then 字句中,較少發生的情形則攑֜ else 字句裡面?
避免使用一長串?if 敘述Q如果可能的話,使用 case 來取代?
巢狀 if 不應該超過四層。當巢狀 if 過四層時,你應該想辦法以更明的方式來撰寫這段E式|例如部分判斷式寫成獨立函式Q?
不要?if 敘述中用不必要的括號?
3.6.2 case 陌?br />case 裡面的各個條件應該以數字或英文字母的順序排列?
各個條件的處理動作應盡量簡短,通常以不過五行E式為限,如果要處理的動作太複雜的話,應該寫成獨立的函式?
else 子句只有畉要預a行為或者偵測錯誤時才用?
3.6.3 while 陌?br />不徏議在 while 中?Exit 跳離q圈Q儘可能只用條件式?break 命o?
i?while q圈使用的變數的初始化動作應該要R鄰在進入q圈之前Q其間不要有M不相q的E式{?
M後續處理應在q圈後立即進行?
3.6.4 for 陌?br />3.6.5 repeat 陌?br />3.6.6 with 陌?br />〔回目錄?/p>


--------------------------------------------------------------------------------

3.7 i構化異常處理(Structured Exception HandlingQ?br />異常處理常被用於捕捉錯誤和資源回Ӟ例如Q假a你你配|了一項資源,你可以在 finally 子句撰寫釋放資源的程式碼以確保資源會被釋放?/p>

3.7.1 try...finally
在不需要理會錯誤的情Ş下,可以使用此敘qCZ資源被回Ӟ但是每一個配|資源的動作都應該對應一?try...finally 敘述Q以下的E式可能會引發問題Q?/p>

SomeClass1 := TSomeClass.Create;
SomeClass2 := TSomeClass.Create;
try
{do some code }
finally
SomeClass1.Free;
SomeClass2.Free;
end;
比較安全的寫法應該是Q?/p>

SomeClass1 := TSomeClass.Create;
try
SomeClass2 := TSomeClass.Create;
try
{do some code }
finally
SomeClass2.Free;
end;
finally
SomeClass1.Free;
end;
3.7.2 try...except
你可以用此敘qC捕捉異常並進行外的處理。一般來說,你不會只Z示錯誤a息而?try...exceptQ因?Application 物g會自動幫你顯C錯誤訊息。如果你?except 裡面處理完該做的事情之後惌再將錯誤傛_去,可以使用 raise 指o?/p>

〔回目錄?/p>


--------------------------------------------------------------------------------

3.8 別QclassesQ?br />3.8.1 命名/格式
別的型態名E׃大寫 'T' 開頭Q例如:

type
TCustomer = class(TObject)
別實體的名E可以直接將前面?'T' LQ?/p>

var
Customer: TCustomer;
a:元g的命名規則請參考「元件」章?/p>

3.8.2 Ƅ位QFieldsQ?br />別中的Ƅ位Q指的就是私有成員(private membersQ,他們的命名規則和一般的變數相同Q但是必須在前面冠上大寫 'F' Q表CZ們是 fields?
3.8.3 ҎQMethodsQ?br />命名/格式
Methods 的命名規則和一般函式相同?/p>

靜態ҎQStatic MethodsQ?
當你不希望某?method 被子別改寫QoverrideQ的話,可以它宣告為靜態方法?/p>

虛擬/動態ҎQVirtual/Dynamic MethodsQ?
當你預期某?method 會被子類別改寫的話,應將它宣告為 virtual。?dynamic 的用時是當一個類別有很多子類別的時候,例如一個類別有 100 個子別Q而這些子類別都會用到某?methodQ但是很會L寫它Q那這?method 應該被宣告?dynamic 以節省記憉?/p>

a:每一個類別的 virtual methods 需要以一個虛擬方法表QVMT, Virtual Method TableQ來a錄?/p>

抽象ҎQAbstract MethodsQ?
抽象Ҏ應該只被用於抽象別中,它們主要是用來定義基礎別的介面?/p>

屬性存取方法(Property-Access MethodsQ?
存取屬性的Ҏ是你經常在元g的原始碼中看到的 Get/Set ҎQ它們各自對應到屬性的讀取和寫入動作Q寫入的Ҏ名稱是以 Set 開頭Q參數值的名稱通常?Value 命名。參考以下範例:


TSomeClass =class(TObject)private  FSomeField: Integer;protected  function GetSomeField: Integer;  procedure SetSomeField(Value: Integer);public  property SomeField: Integer read GetSomeField write SetSomeField;end;

這些 Get/Set Ҏ應該攑֜ private ?protected 區D中?/p>

3.8.4 屬性(PropertiesQ?br />屬性可以讓外界存取別的私有成員,其命名方式是私有成員名E前面的 'F' L。由於屬性代表的是資料,所以名E應該是名詞而非動詞?/p>

通常屬性是單數Q如果是陣列型態的屬性,其名E應該用複數?/p>

〔回目錄?/p>


--------------------------------------------------------------------------------

4.0 檔案
4.1 Project Files
案名稱應該要能描述其功能,例如QThe Delphi 5 Developer's Guide ?Bug Manager 的專案名E就取名?DDGBugs.dpr?/p>

4.2 Form Files
Form 的檔案名E׃ Frm 作結,例如QAboutFrm.pas。主視窗通常會以 MainFrm.pas 命名?/p>

4.3 Data Module Files
Data Module 的檔案名E׃ DM 作結,例如QCustomerDM.pas ?CustomerDm.pas?/p>

4.4 Remote Data Module Files
Remote Data Module 的檔案名E׃ RDM 作結,例如QCustomerRDM.pas ?CustomerRdm.pas?/p>

a:MTSDataModule 也是 Remote Data Module 的一E,因此可以使用相同的命名方式?/p>

4.5 Unit Files
4.5.1 一般單元結?br />uses 子句
?interface 區D늚 uses 子句應該只包?interface 會用到的單元Q在 implementation 區D늚 uses 子句應該只包?implementation 會用到的單元Q沒有用到的單元應該其U除?/p>

interface 區D?
如其名稱所揭示的,這部分是提供外界存取的介面,在此區D中所宣告的型態,變數Q函式都可能會被其他單元使用Q因此不希望被外界存取者應|於 implementation 區D內?/p>

implementation 區D?
此區D|宣告的型態,變數Q函式等都只能被此單元用?/p>

initialization 區D?
不要把很花時間的工作攑֜此區D中Q否則會拖慢應用E式載入的時間?/p>

finalization 區D?
?initialization 區D中配置的資源必須在此處釋放?/p>

4.5.2 一般用途的單元
例如Q一個工具類的單元可能被命名?BugUtilities.pasQ或 BugUtils.pasQ,而一個專門存放全域變數的單元可能叫?AppGlobals.pas?/p>

a住這類q單元可能被專案中所有的E式單元及套件用,Z避免名稱衝突Q在為檔案命名時不要用太普遍的名E?/p>

4.5.3 元g單元
元g單元應該要被集中存放在一個獨立的目錄Q不應該攑֜案目錄下跟其他檔案混在一赗?/p>

4.6 檔案表頭QFile HeadersQ?br />檔案表頭通常提供了檔案的用途,版權宣告Q作者,注意事項...{資a。你可以採用似下面的寫法:

(*---------------------------------------------------------------------------
說明

要說明此檔案的用途?/p>

注意事項

版權宣告

修改歷史
---------------------------------------------------------------------------*)
如果有入或輸出的參數,以及跟外部互動的介面也可以在檔頭中註明?/p>

〔回目錄?/p>


--------------------------------------------------------------------------------

5.0 Forms and Data Modules
5.1 Forms
5.1.1 Form 型態命名標準
?TXxxxForm 的方式命名,例如Q?/p>

TAboutForm = class(TForm)
主視H通常會這麼寫:

TMainForm = class(TForm)
輸入客戶基本資料的表單可能像這樣Q?/p>

TCustomerEntryForm = class(TForm)
5.1.2 Form 實體命名標準
型態名E前面的 'T' L作為 Form 的實體名E,參考下面的例Q?/p>

型態名稱
實體名稱

TAboutForm AboutForm
TMainForm MainForm
TCustomerEntryForm CustomerEntryForm

5.1.3 自動建立?Forms
只有主視H才應該被自動徏立,除非有特D的原因Q否則其他視H都應該以動態的方式建立?/p>

5.1.4 建立 Modal Form 的函?br />當你要用一?Form 時,不要?Delphi q你產生?Form 變數Q應該以一個函式來建立及顯C這?FormQ參考下面的例Q?/p>


unit UserDataFrm;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls;type  TUserDataForm = class(TForm)    edtUserName: TEdit;    edtUserID: TEdit;  private    {Private declarations }  public    {Public declarations }  end;function GetUserData(var aUserName: string; var aUserID: Integer): Word;implementation{$R *.DFM}function GetUserData(var aUserName: string; var aUserID: Integer): Word;var  UserDataForm: TUserDataForm;begin  UserDataForm := TUserDataForm.Create(Application);  try    UserDataForm.Caption := 'Getting User Data';    Result := UserDataForm.ShowModal;    if Result = mrOK then     begin      aUserName := UserDataForm.edtUserName.Text;      aUserID := StrToInt(UserDataForm.edtUserID.Text);    end;  finally    UserDataForm.Free;  end;end;end.

5.2 Data Modules
5.2.1 Data Module 型態命名標準
?TXxxDataModule ?TXxxDmod 的方式命名,例如Q?/p>

TCustomerDmod = class(TDataModule)
5.2.2 Data Module 實體命名標準
型態名E前面的 'T' L作為 Data Module 的實體名E,例如Q?/p>

var
CustomerDmod: TCustomerDmod;
5.3 Remote Data Modules
命名方式可以和一般的 Data Modules 一樣?TXxxDmodQ或者用 TXxxRdmod。例如:

var
CustomerRmod: TCustomerRdmod;
〔回目錄?/p>


--------------------------------------------------------------------------------

6.0 套gQPackagesQ?br />6.1 埯時期 v.s. a計時期套g
埯時期套g應該只包含其中各元g所需參考的單元或套Ӟ其他只有在設a時期才會用到的E式或單元Q例如屬?元gR輯器等Q就應該攑֜a計時期套g裡,此外Q用來註冊元件的單元也應該放在設a時期套件裡?/p>

6.2 檔案命名標準
套g的檔案名E名應該仿照以下的例子:

iiilibvv.dpkQ設a時期套Ӟ
iiistdvv.dpkQ執行時期套Ӟ
其中 iii 表示用來作為識別的三個字元,可能是你的姓名,公司名稱Q或是其他個體的縮寫。字?vv 表示此套件所適用?Delphi 版本號碼。?lib ?std 則用來區別設a時期和埯時期?/p>

假設某個套件同時有a計時期和執行時期兩E套Ӟ他們會有相似的檔案Q例?Delphi 5 Developer's Guide 的套件會命名為:

DdgLib50.dpkQ設a時期套Ӟ
DdgStd50.dpkQ執行時期套Ӟ
〔回目錄?/p>


--------------------------------------------------------------------------------

7.0 元gQComponentsQ?br />7.1 使用者自a元?br />7.1.1 元g型態命名標準
元g的命名方式和之前「類別」一當中提到的命名方式類|差別僅在於元件名E前面會冠上三個字元以作為識別Q這三個前|字元可以是你個h、公司、或M個體的名Eq寫,例如Q在 Delphi 5 Developer's Guide 裡面有一個時鐘元Ӟ他的定義是:

TddgClock = class(TComponent)

注意這三個前|字元都是小寫英文字母?/p>

7.1.2 元g單元
元g所屬的單元裡面應該只包含一個主元gQ所「主元g」就是指那些會放?Delphi 元g盤上面的元gQ其他輔助性質的元件則可以跟主元g攑֜同一個單元裡面?/p>

7.1.3 使用ad單元
用來ad元g的程序應該被抽離ZQ並集中C個獨立的檔案當中Q這個專門用來ad元g的單元同時也可以用來ad屬性編輯器Q元件編輯器Q專ӞDelphi expertsQ?...{等?/p>

由於ad元g的動作只有在a計時期套g中才會執行,因此ad單元應該只被攑֜a計時期套g裡,而不會出珑֜埯時期套g裡。註冊單元的檔案名稱您以下列型式命名Q?/p>

XxxReg.pas

其中 Xxx 表示用來作為識別的三個字元,可能是你的姓名,公司名稱Q或是其他個體的縮寫。例如,?Delphi 5 Developer's Guide 裡面用來ad元g的單元其檔名是 DdgReg.pas?/p>

7.2 元g實體命名慣例
元g的命名採用類伹{匈牙利表示法」的命名慣例Q元件的名稱分為「元件型態字首」以及「元件修飑֐E」兩個部分?/p>

7.2.1 元g型態字首QComponent Type PrefixesQ?br />所「元件型態字首」,是一i代表元件型態的英文寫字母Q例如,TButton 的型態字首為 btnQTEdit 的型態字首為 edt。你可以依照下列的步驟挑選出合適的字首:

U除開頭?'T' 字母Q例如,"TButton" p?"Button"?
U除所有的母音字母Q並且全部改成小寫,例如Q?Button" p?"bttn"Q?Edit" 變成 "edt"?
兩個連續的相同字母僅保留一個,例如Q?bttn" 變成 "btn"?
若結果和其他的名EpH,可以開始加入母音字母Q例如,"TBatton" 的字首和 "TButton" 一樣,因此可以?"TBatton" 的字首改?"batn"?
請參考另一?"Delphi 5 元g型態字首" 以取得更多元件型態字首的資訊?/p>

7.2.2 元g修飾詞名E(Component Qualifier NameQ?br />元g修飾詞名E應該要W合其作用,例如Q一個用來關閉視H的按鈕應該被命名為 "btnClose"Q入員工姓名的文字盒應被命名為 edtEmpName?/p>

 



liaojiyong 2007-02-06 15:15 发表评论
]]>
Delphi 函數?/title><link>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98318.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Tue, 06 Feb 2007 07:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98318.html</guid><wfw:comment>http://www.aygfsteel.com/liaojiyong/comments/98318.html</wfw:comment><comments>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liaojiyong/comments/commentRss/98318.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liaojiyong/services/trackbacks/98318.html</trackback:ping><description><![CDATA[名稱                        型         說明<br />----------------------------------------------------------------------------------<br />Abort                       函數         引v放棄的意外處?<br />Abs                         函數         i對值函?<br />AddExitProc                 函數         一過程d到運行時庫的i束過程表中 <br />Addr                        函數         q回指定象的地址 <br />AdjustLineBreaks            函數         定字W串的行分隔W調整為CR/LF序列 <br />Align                       屬性       ?使控件位於窗口某部分 <br />Alignment                   屬性       ?控g標籤的文字位|?<br />AllocMem                    函數         在堆上分配i定大小的塊 <br />AllowGrayed                 屬性       ?允許一個灰度選?<br />AnsiCompareStr              函數         比較字符Ԍ區分大寫Q?<br />AnsiCompareText             函數         比較字符Ԍ不區分大寫Q?<br />AnsiLowerCase               函數         字W轉換為寫 <br />AnsiUpperCase               函數         字W轉換為大寫 <br />Append                      函數         以附加的方式打開已有的文?<br />ArcTan                      函數         余切函數 <br />AssignFile                  函數         i文件變量c一外部文g?<br />Assigned                    函數         測試函數或過E變量是否為I?<br />AutoSize                    屬性       ?自動控制標籤的大?<br />BackgroundColor             屬性       ?背景?<br />BeginThread                 函數         以適當的方式建立用於內存理的線E?<br />BevelInner                  屬性       ?控gҎ的內框方?<br />BevelOuter                  屬性       ?控gҎ的外框方?<br />BevelWidth                  屬性       ?控gҎ的外框寬?<br />BlockRead                   函數         讀一個或多個記錄到變量?<br />BlockWrite                  函數         從變量中寫一個或多個記?<br />BorderStyle                 屬性       ?邊界型 <br />BorderWidth                 屬性       ?邊界寬度 <br />Break                       命o         i止for、while、repeat循環語句 <br />Brush                       屬性       ?畫刷 <br />Caption                     屬性       ?標籤文字的內?<br />ChangeFileExt               函數         改變文g的後E?<br />ChDir                       函數         改變當前目錄 <br />Checked                     屬性       ?定復選框選中狀?<br />Chr                         函數         q回指定序數的字W?<br />CloseFile                   命o         關閉打開的文?<br />Color                       屬性       ?標籤的顏?<br />Columns                     屬性       ?示的列?<br />CompareStr                  函數         比較字符Ԍ區分大寫Q?<br />Concat                      函數         合併字符?<br />Continue                    命o         J續for、while、repeat的下一個@?<br />Copy                        函數         q回一字符串的子串 <br />Cos                         函數         余u函數 <br />Ctl3D                       屬性       ?是否h3D效果 <br />Cursor                      屬性       ?鼠標指針Ud後的形狀 <br />Date                        函數         q回當前的日?<br />DateTimeToFileDate          函數         DELPHI的日期格式轉換為DOS的日期格?<br />DateTimeToStr               函數         日期時間格式轉換為字符?<br />DateTimeToString            函數         日期時間格式轉換為字符?<br />DateToStr                   函數         日期格式轉換為字符?<br />DayOfWeek                   函數         q回星期的數?<br />Dec                         函數         遞減變量?<br />DecodeDate                  函數         日期格式分解為q月?<br />DecodeTime                  函數         時間格式分解為時、分、秒、毫U?<br />Delete                      函數         從字W串中刪除子?<br />DeleteFile                  命o         刪除文g <br />DiskFree                    函數         q回剩餘盤I間的大?<br />DiskSize                    函數         q回指定盤的容?<br />Dispose                     函數         釋放動態變量所佔的I間 <br />DisposeStr                  函數         釋放字符串在堆棧中的內存I間 <br />DitherBackground            屬性       ?使背景色的色彩加重或減少50% <br />DragCursor                  屬性       ?畉標按下時光標的Ş狀 <br />DragMode                    屬性       ?按動的作用方?<br />DropDownCount               屬性       ?容許的顯C數據項的數?<br />EditMask                    屬性       ?R輯模式 <br />Enabled                     屬性       ?是否使標c呈現打開狀?<br />EncodeDate                  函數         年月日合成為日期格?<br />EncodeTime                  函數         時、分、秒、毫U合成為時間格式 <br />EndMargin                   屬性       ?末尾邊P <br />Eof                         函數         有型或無型文g測試是否到文件尾 <br />Eoln                        函數         q回文本文g的行i束狀?<br />Erase                       命o         刪除外部文g <br />ExceptAddr                  函數         q回引v當前意外的地址 <br />Exclude                     函數         從集合中刪除一些元?<br />ExceptObject                函數         q回當前意外的烦?<br />Exit                        命o         立即從當前的語句塊中退?<br />Exp                         函數         指數函數 <br />ExpandFileName              函數         q回包含i對路徑的字W串 <br />ExtendedSelect              屬性       ?是否允許存在選擇模式QTrue時,MultiSelect才有意義 <br />ExtractFileDir              函數         q回驅動器和路徑 <br />ExtractFileExt              函數         q回文g的後E?<br />ExtractFileName             函數         q回文g?<br />ExtractFilePath             函數         q回指定文g的\?<br />FileAge                     函數         q回文g已存在的時間 <br />FileClose                   命o         關閉指定的文?<br />FileCreate                  命o         用指定的文g名徏立新文g <br />FileDateToDateTime          函數         DOS的日期格式轉換為DELPHI的日期格?<br />FileExists                  函數         檢查文g是否存在 <br />FileGatAttr                 函數         q回文g的屬?<br />FileGetDate                 函數         q回文g的DOS日期時間標記 <br />FileOpen                    命o         用指定的存取模式打開指定的文?<br />FilePos                     函數         q回文g的當前指針位|?<br />FileRead                    命o         從指定的文g讀?<br />FileSearch                  命o         在目錄中搜烦指定的文?<br />FileSeek                    函數         改變文g的指?<br />FileSetAttr                 函數         a置文g屬?<br />FileSetDate                 函數         a置文g的DOS日期時間標記 <br />FileSize                    函數         q回當前文g的大?<br />FileWrite                   函數         指定的文g做寫操作 <br />FillChar                    函數         用指定的值填充連續字節的數 <br />FindClose                   命o         i止FindFirst/FindNext序列 <br />FindFirst                   命o         指定的文g名及屬性搜索目?<br />FindNext                    命o         q回與文件名及屬性匹配的下一入口 <br />FloatToDecimal              函數         Q點數轉換為十進制?<br />FloatToStrF                 函數         Q點數轉換為字W串 <br />FloatToStr                  函數         Q點數轉換為字W串 <br />FloatToText                 函數         定的點數轉換為十進制?<br />FloatToTextFmt              函數         定的點數轉換為十進制?<br />Flush                       函數         m衝區的內容刷新到輸出的文本文件中 <br />FmtLoadStr                  函數         從程序的資源字符串表中裝載字W串 <br />FmtStr                      函數         格式化一pd的參數,其結果以參數Resultq回 <br />Font                        屬性       ?a置字體 <br />Format                      函數         格式化一pd的參怸q回Pascal字符?<br />FormatBuf                   函數         格式化一pd的參?<br />FormatDateTime              函數         用指定的格式來格式化日期和時?<br />FormatFloat                 函數         指定點數格?<br />Frac                        函數         q回參數的小敔R?<br />FreeMem                     函數         按定大釋攑֋態變量所佔的I間 <br />GetDir                                   q回指定驅動器的當前目錄 <br />GetHeapStatus                            q回內存理器的當前狀?<br />GetMem                                   建立一指定大小的動態變量,並將指針指向該處 <br />GetMemoryManager                         q回內存理器的入口?<br />Glyph                       函數         按鈕上的圖像 <br />Halt                                     停止E序的執行並q回到操作系i?<br />Hi                                       q回參數的高地址?<br />High                                     q回參數的上限?<br />Hint                        屬性       ?提示信息 <br />Int                                      q回參數的整敔R?<br />Include                                  d元素到集合中 <br />Insert                                   在字W串中插入子?<br />IntToHex                                 整型數轉換為十六進制?<br />IntToStr                                 整型數轉換為字W串 <br />IOResult                                 q回最新的I/O操作完成狀?<br />IsValidIdent                             測試字符串是否為有效的標識符 <br />Items                       屬性       ?默認示的節?<br />Kind                        屬性       ?擺放樣式<br />LargeChange                 屬性       ?最大改變?<br />Layout                      屬性       ?圖像佈局 <br />Length                      函數         q回字符串的動態長度 <br />Lines                       屬性       ?~省示內容 <br />Ln                          函數         自然數函數 <br />Lo                          函數         q回參數的低地址?<br />LoadStr                     函數         從應用程序的可執行文件中裝載字符資源 <br />LowerCase                   函數         定的字符串變為小?<br />Low                         函數         q回參數的下限?<br />Max                         屬性       ?最大?<br />MaxLength                   屬性       ?最大長?<br />Min                         屬性       ?最?<br />MkDir                       命o         建立一子目?<br />Move                        函數         從源到目標複製字 <br />MultiSelect                 屬性       ?允許同時選擇qր數據項 <br />Name                        屬性       ?控g的名?<br />New                         函數         建立新的動態變量並設|一指針變量指向?<br />NewStr                      函數         在堆上分配新的字符?<br />Now                         函數         q回當前的日期和時間 <br />Odd                                      測試參數是否為奇?<br />OnActivate                  事g         焦點UdH體上時觸發 <br />OnClick                     事g         單擊H體I白區域觸?<br />OnDblClick                  事g         雙擊H體I白區域觸?<br />OnCloseQuery                事g         使用者試圖關閉窗體觸?<br />OnClose                     事g         H體關閉後才觸發 <br />OnCreate                    事g         H體W一ơ創建時觸發 <br />OnDeactivate                事g         用戶切換到另一應用E序觸發 <br />OnDragDrop                  事g         鼠標拖放操作i束時觸?<br />OnDragOver                  事g         有其他控件從他上面移過觸?<br />OnMouseDown                 事g         按下鼠標鍉|觸發 <br />OnMouseUp                   事g         釋放鼠標鍉|觸發 <br />OnMouseMove                 事g         Ud鼠標時觸?<br />OnHide                      事g         pH體時觸?<br />OnKeyDown                   事g         按下늛某鍵時觸?<br />OnKeyPress                  事g         按下늛上的單個字W鍵時觸?<br />OnKeyUp                     事g         釋放늛上的某鍵時觸?<br />OnPaint                     事g         H體上有新部分暴露出來觸?<br />OnResize                    事g         重新調整H體大小觸發 <br />OnShow                      事g         在窗體實際顯CZ前瞬間觸?<br />Ord                                      q回序數的序數 <br />OutlineStyle                屬性       ?型 <br />OutOfMemoryError                         引vOutOfMemory意外 <br />PageIndex                   屬性       ?頁烦?<br />Pages                       屬性       ??<br />ParamCount                  函數         q回在命令行上傳遞E序的參數數?<br />ParamStr                    函數         q回指定的命令行參數 <br />Pen                         屬性       ?畫刷a置 <br />Pi                          函數         q回圓周率Pi <br />Picture                     屬性       ?示圖像 <br />PictureClosed               屬性       ?a置Closed位圖 <br />PictureLeaf                 屬性       ?a置Leaf位圖 <br />PictureMinus                屬性       ?a置Minus位圖 <br />PictureOpen                 屬性       ?a置Open位圖 <br />PicturePlus                 屬性       ?a置Plus位圖 <br />Pos                         函數         在字W串中搜索子?<br />Pred                        函數         q回先前的參?<br />Random                      函數         q回一隨機函數 <br />Randomize                   函數         用一隨機數初始化內置的隨數生成?<br />Read                        函數         有格式的文Ӟ讀一文gig到變量中Q?br />                                         文本文Ӟ讀一個或多個值到一個或多個變量中 <br />Readln                      函數         埯Read過程Q然後蟩到文件下一?<br />ReadOnly                    屬性       ?只讀屬?<br />ReAllocMem                  函數         分配一動態變量 <br />Rename                      函數         重命名外部文?<br />RenameFile                  函數         文仉命名 <br />Reset                       函數         打開已有的文?<br />Rewrite                     函數         建立並打開一新的文g <br />RmDir                       函數         刪除I的子目?<br />Round                       函數         實數值捨入為整型?<br />RunError                    函數         停止E序的執?<br />ScrollBars                  屬性       ?滑֋條狀?<br />Seek                        函數         文件的當前指針Ud到指定的ig?<br />SeekEof                     函數         q回文g的文件結束狀?<br />SeekEoln                    函數         q回文g的行i束狀?<br />SelectedColor               屬性       ?怸色 <br />SetMemoryManager            函數         a置內存理器的入口?<br />SetTextBuf                  函數         i文本文件指定I/OR衝區 <br />Shape                       屬性       ?示的Ş狀 <br />ShowException               函數         示意外消息與地址 <br />Sin                         函數         正u函數 <br />SizeOf                      函數         q回參數所佔的字節?<br />SmallChange                 屬性       ?最改變?<br />Sorted                      屬性       ?是否允許排序 <br />Sqr                         函數         qx函數 <br />Sqrt                        函數         qx根函?<br />StartMargin                 屬性       ?開始邊P <br />State                       屬性       ?控g當前狀?<br />Str                         函數         數D換為字符?br />StrAlloc                    函數         i以NULLi束的字W串分配最大長?1的m衝區 <br />StrBufSize                  函數         q回存儲在由StrAlloc分配的字Wm衝區的最大字W數 <br />StrCat                      函數         一字符串附加到另一字符串尾並返回合늚字符?<br />StrComp                     函數         比較兩個字W串 <br />StrCopy                     函數         一個字W串複製到另一個字W串?<br />StrDispose                  函數         釋放堆棧上的字符?<br />StrECopy                    函數         一字符串複製到另一個字W串並返回結果字W串N的指?<br />StrEnd                      函數         q回指向字符串尾部的指針 <br />Stretch                     屬性       ?自動適應控g的大?<br />StrFmt                      函數         格式化一pd的參?<br />StrIComp                    函數         比較兩個字W串Q不區分大寫Q?<br />StringToWideChar            函數         ANSI字符串轉換為UNICODE字符?<br />StrLCat                     函數         一字符串中的字W附加到另一字符串尾並返回合늚字符?<br />StrLComp                    函數         以最大長度比較兩個字W串 <br />StrLCopy                    函數         一個字W串中的字符複製到另一個字W串?<br />StrLen                      函數         q回字符串中的字W數 <br />StrLFmt                     函數         格式化一pd的參數,其結果中包含有指向目標m衝區的指?<br />StrLIComp                   函數         以最大長度比較兩個字W串Q不區分大寫Q?<br />StrLower                    函數         字W串中的字符轉換為小?<br />StrMove                     函數         一個字W串中的字符複製到另一個字W串?<br />StrNew                      函數         在堆上分配一個字W串 <br />StrPas                      函數         以NULLi束的字W串轉換為PASCAL的字符?<br />StrPCopy                    函數         PASCAL的字符串複製為以NULLi束的字W串 <br />StrPLCopy                   函數         從PASCAL的最大長度字W串複製ZNULLi束的字W串 <br />StrPos                      函數         q回一個字W串在另一個字W串中首ơ出現指?<br />StrRScan                    函數         q回字符串中最後出珑֭W的指針 <br />StrScan                     函數         q回字符串中出現首字W的指針 <br />StrToDate                   函數         字W串轉換為日期格?<br />StrToDateTime               函數         字W串轉換為日?時間格式 <br />StrToFloat                  函數         定的字符串轉換為點?<br />StrToInt                    函數         字W串轉換為整?<br />StrToIntDef                 函數         字W串轉換為整型或默認?<br />StrToTime                   函數         字W串轉換為時間格?<br />StrUpper                    函數         字W串中的字符轉換為大?<br />Style                       屬性       ?型選擇 <br />Suce                        函數         q回後繼的參?<br />Swap                        函數         交換參數的高低地址?<br />Tabs                        屬性       ?標記每一項的內容 <br />TabIndex                    屬性       ?標記索引 <br />Text                        屬性       ?示的文?<br />TextToFloat                 函數         字W串Q以NULLi束的格式)轉換為Q點數 <br />Time                        函數         q回當前的時?<br />TimeToStr                   函數         時間格式轉換為字符?<br />Trim                        函數         從定的字符串中刪除前導和尾部的I格及控制字W?<br />TrimLeft                    函數         從定的字符串中刪除首部的空格及控制字符 <br />TrimRight                   函數         從定的字符串中刪除N的空格及控制字符 <br />Trunc                       函數         實型值截取為整型?<br />Truncate                    函數         截去當前文g位置後的內容 <br />UnSelectedColor             屬性       ?未選中顏?<br />UpCase                                   字W轉換為大寫 <br />UpperCase                                定的字符串變為大?<br />Val                         函數         字W串轉換為整型?<br />VarArrayCreate              函數         以定的界限和維數徏立變體數i?<br />VarArrayDimCount            函數         q回i定變體的維?<br />VarArrayHighBound           函數         q回i定變體數組E數的上?<br />VarArrayLock                函數         鎖定i定的變體數i?<br />VarArrayLowBound            函數         q回i定變體數組E數的下?<br />VarArrayOf                  函數         q回指定變體的數i元?<br />VarArrayRedim               函數         通過改變上限來調整變體的大小 <br />VarArrayUnlock              函數         解鎖指定的變體數i?<br />VarAsType                   函數         變體轉換為指定的類?<br />VarCase                     函數         變體轉換為指定的類型並保存?<br />VarClear                    函數         清除指定的變?<br />VarCopy                     函數         指定的變體複製為指定的變體 <br />VarFormDateTime             函數         q回包含日期時間的變?<br />VarIsArray                  函數         測試變體是否為數i?<br />VarIsEmpty                  函數         測試變體是否為UNASSIGNED <br />VarIsNull                   函數         測試變體是否為NULL <br />VarToDateTime               函數         定的變體轉換為日期時?<br />VarType                     函數         變體轉換為指定的類型並保存?<br />Visible                     屬性       ?控g的可見?<br />WantReturns                 屬性       ?為True時,按回車鍵產生一個回車符Q?br />                                         為False時,按下Ctrl+Enter才產生回車符 <br />Write                       命o         有格式的文Ӟ寫一變量到文件組件中Q?br />                                         文本文Ӟ寫一個或多個值到文g?<br />Writeln                     命o         埯WRITE過程Q然後Z行結束標?<br />WideCharLenToString         函數         ANSI字符串轉換為UNICODE字符?<br />WideCharLenToStrWar         函數         UNICODE字符串轉換為ANSI字符串變?<br />WideCharToString            函數         UNICODE字符串轉換為ANSI字符?<br />WideCharToStrVar            函數         UNICODE字符串轉換為ANSI字符串變?<br /><img src ="http://www.aygfsteel.com/liaojiyong/aggbug/98318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liaojiyong/" target="_blank">liaojiyong</a> 2007-02-06 15:12 <a href="http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>偷龍轉鳳的物件設a方?/title><link>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98316.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Tue, 06 Feb 2007 07:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98316.html</guid><wfw:comment>http://www.aygfsteel.com/liaojiyong/comments/98316.html</wfw:comment><comments>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liaojiyong/comments/commentRss/98316.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liaojiyong/services/trackbacks/98316.html</trackback:ping><description><![CDATA[ <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">一般我們設a一個物Ӟ規規矩矩的從</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">VCL</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">下選擇一個最W合本n需求的物計</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">J承下來Q從這個物仉始擴充功能,但有時候這種標準的設a方式,有實</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">際的困難Q一者我們手上可能沒有這個物件的</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Source</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q二者更攚w個物件之</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">後,需考慮原先的物件可能已E在pȝ中運作,Z不破壞原有的物g功能</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q及使用的介面,這個時候我們需要一E偷龍轉鳳的ҎQ偷L把這個物</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">件至換掉Q要|換這個物Ӟ最好的Ҏ是產生一個一模一樣的別Z</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q而且不改變原有物件的屬性及ҎQ或者是在原有物件上擴充功能?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">以下提供一個另的a計ҎQ來解決這個問。假如有一?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">TEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">的物?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q我們希望它在修改資料的時候,可以改變色Q在不改變原有物件的使用</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">介面下,如何來擴充這個功能呢H?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">請看這個範例的說明H?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">這個繼承自</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TMyEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">很簡單的宣告</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> ReadOnly </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">這個屬性,其他 </span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Create</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Load </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">的方法,只是要在a計期間取得目前正確的顏色設定而已?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">type<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>TMyEdit = class(TEdit)<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>private<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>FDesignColor: TColor;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>FReadOnly: boolean;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>procedure SetReadOnly(Value: boolean);<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>procedure SetColor;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>protected<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>procedure Loaded; override;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>public<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>constructor Create(AOwner: TComponent); override;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>published<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>property ReadOnly: boolean read FReadOnly write SetReadOnly;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">接下來我們看</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TMyEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">如何改變原來的屬性,請把焦點攑֜</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> SetReadOnly</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">上面Q這?</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">procedrue </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">動了以下的手?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">: </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">在繼?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">ReadOnly</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">原有的屬性之後,進行色的改變?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">procedure TMyEdit.SetReadOnly(Value: boolean);<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">begin<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>FReadOnly:= Value;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>inherited ReadOnly:= Value;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>SetColor;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes"> </span> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">SetReadOnly </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">在父層類?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TCustomEdit <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">中已有定,只是它被攑֜</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> private <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">區D裡Q子別是看不到的,否則只要改寫</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> SetReadOnly <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Ҏp了。在這裡重新定義?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> ReadOnly <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">屬性,除了保有爉?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> ReadOnly <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">屬性的作用Q並賦予它新的行為。在a計別時,也許?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Get/Set </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">存取Ҏ宣告?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> protected <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">區D|比較方便Q後代類別可以直接改?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> Get/Set <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Ҏ來改變或附加行為Q但這也表示爉別將失去私有成員的保護力,子類別幾?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">可以完全改變爉別的行為。因此,要把</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Get/Set </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">攑֜</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> private </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">還是</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> protected <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">區D實仁見智的問題Q設a者可視情況選擇對自己最有利的方式?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">以下?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TMyEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">所有實作的部分H?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">constructor TMyEdit.Create(AOwner: TComponent);<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">begin<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>inherited;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>FDesignColor:= clWindow; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">procedure TMyEdit.Loaded; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">begin<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>inherited;<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>FDesignColor:= Color; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">procedure TMyEdit.SetColor; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">begin<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>if ReadOnly then<span style="mso-spacerun: yes">     </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>Color:= clBtnFace<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>else<span style="mso-spacerun: yes">     </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">    </span>Color:= FDesignColor; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">procedure TMyEdit.SetReadOnly(Value: boolean); <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">begin<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>FReadOnly:= Value;<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>inherited ReadOnly:= Value;<span style="mso-spacerun: yes">   </span><o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <span style="mso-spacerun: yes">  </span>SetColor; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">end;<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">寫好這個物件我們開始進行測試Q看這個物件如何無聲無息的嵌入我們已</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">E寫好的單元Q首先我們拉一?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Form1</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">ZQ在上面放一?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Edit1 </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Button1</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q當然您還要建構這?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> TMyEdit </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">的物ӞZ方便赯Q請?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">個單元直?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Copy </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> Form1 </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">所屬的單元裡頭Q然後在</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> Button1 </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">上面Q寫?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">:<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">TMyEdit(Edit1).ReadOnly := False; <o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">埯看看Q按一?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> Button1</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Q這時?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> Edit1 </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> ReadOnly </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">是不是多了改變顏色的功能H?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <img src ="http://www.aygfsteel.com/liaojiyong/aggbug/98316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liaojiyong/" target="_blank">liaojiyong</a> 2007-02-06 15:04 <a href="http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi中的快捷方式大收?/title><link>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98312.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Tue, 06 Feb 2007 06:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98312.html</guid><wfw:comment>http://www.aygfsteel.com/liaojiyong/comments/98312.html</wfw:comment><comments>http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liaojiyong/comments/commentRss/98312.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liaojiyong/services/trackbacks/98312.html</trackback:ping><description><![CDATA[ <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">11.ALT+</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">游標左鍵 可以塊選E式|用來刪除齊的重複程式碼非常有用</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">23.Ctrl+I </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Tab</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">24.CTRL+J (</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">彈出</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Delphi</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">語句提示視窗Q選擇所需語句自動完成一條語?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">)</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">E式模?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">25.Ctrl+M </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Enter</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">c?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">26.Ctrl+N </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">Enter</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">鍵,但游標位|保持不?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">27.Ctrl+T </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">刪除游標右邊的一個單?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">28.Ctrl+Y </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">刪除游標所在行</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">37.CTRL+ENTER </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">定位到單元文?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">42.Ctrl+O+U </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">切換選擇塊的大小?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">(</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">注意鬆開</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">O</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">後再?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">U,Ctrl</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">保持按下</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">)<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">43.Ctrl+K+O </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">切換選擇塊為寫</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">(</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">注意鬆開</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">K</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">後再?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">O,Ctrl</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">保持按下</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">)<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">44.Ctrl+K+N </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">切換選擇塊為大寫</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">(</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">注意鬆開</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">K</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">後再?/span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">N,Ctrl</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">保持按下</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">)<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">45.Ctrl+Shift+G </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">插入</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">GUID<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">46.Ctrl+Shift+T </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">在游標行加入</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">To-Do</span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">a釋</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">47.Ctrl+Shift+Y </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">刪除游標之後x行末之間的文本</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">48.CTRL+SHIFT+C </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">R寫x或者補上函數,i好</span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">!!!<o:p></o:p></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">59.Ctrl+E </span> <span lang="ZH-TW" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">快速選擇(呵呵Q試試吧Q很好玩的) <br /></span> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW"> <o:p> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> </o:p> </span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: MingLiU; mso-bidi-font-family: MingLiU; mso-fareast-language: ZH-TW">DELPHI中的快捷方式一?br />1.SHIFT+游標左鍵 先選中Q一元g,按鍵後可怸視窗(怸元g後按Esc效果一?<br />2.Shift+F8 調試時彈出CPU視窗?br />3.Shift+F10 {於游標右鍵QWindows快捷鍵)?br />4.Shitf+頭 選擇<br />5.shift +F12 快速查找視H並打開<br />6.F7 Q步進式調試同時q蹤進入子過E)<br />7.F8 Q步進式調試不進入子過E)<br />8.F9 埯<br />9.F12 切換EDITOR,FORM<br />10.Alt+F4 關閉所有編輯框中打開的源程序文Ӟ但不關閉項目<br />11.ALT+游標左鍵 可以塊選E式|用來刪除齊的重複程式碼非常有用<br />12.Ctrl+F9 R譯<br />13.Ctrl+shift+N(n=1,2,3,4......) 定義書籤<br />14.Ctrl+n(n=1,2,3,4......)跛_書籤n<br />15.CTRL +SHIFT+N 在書cN處,再按一?取消書籤<br />16.Ctrl+PageUp 游標移x屏的W一行,螢幕不毈?br />17.Ctrl+PageDown 游標移x屏的最後一行,螢幕不毈?br />18.Ctrl+?向下滑֋螢幕Q游標跟隨毈動不出本?br />19.Ctrl+?向上滑֋螢幕Q游標跟隨毈動不出本?br />20.Ctrl+Home 游標移x仉<br />21.Ctrl+End 游標移x件尾<br />22.Ctrl+B Buffer List視窗<br />23.Ctrl+I 同Tab?br />24.CTRL+J (彈出Delphi語句提示視窗Q選擇所需語句自動完成一條語?E式模?br />25.Ctrl+M 同Enterc?br />26.Ctrl+N 同Enter鍵,但游標位|保持不?br />27.Ctrl+T 刪除游標右邊的一個單?br />28.Ctrl+Y 刪除游標所在行<br />29.CTRL+C 複製<br />30.CTRL+V g<br />31.CTRL+X 剪切<br />32.CTRL+Z 還原(Undo)<br />33.CTRL+S 保存<br />34.Ctrl+F 查找<br />35.Ctrl+L J續查找<br />36.Ctrl+r 替換<br />37.CTRL+ENTER 定位到單元文?br />38.Ctrl+F3 彈出Call Stack視窗<br />39.Ctrl+F4 {於File選單中的Close?br />40.Ctrl+Backspace 後退刪除一個詞,直到遇到一個分割符<br />41.Ctrl+游標轉輪 加速毈?br />42.Ctrl+O+U 切換選擇塊的大小?注意鬆開O後再按U,Ctrl保持按下)<br />43.Ctrl+K+O 切換選擇塊為寫(注意鬆開K後再按O,Ctrl保持按下)<br />44.Ctrl+K+N 切換選擇塊為大寫(注意鬆開K後再按N,Ctrl保持按下)<br />45.Ctrl+Shift+G 插入GUID<br />46.Ctrl+Shift+T 在游標行加入To-Doa釋<br />47.Ctrl+Shift+Y 刪除游標之後x行末之間的文本<br />48.CTRL+SHIFT+C R寫x或者補上函數,i好!!!<br />49.CTRL+SHIFT+E 示EXPLORER<br />50.Ctrl+Tab 在Inspector中切換Properties頁和Events?br />51.CTRL+SHIFT+U E式整塊左U?個空g|?br />52.CTRL+SHIFT+I E式整塊右U?個空g|?br />53.CTRL+SHIFT+?在過E、函數、事件內? 可蟩w到相應的過E、函數、事<br />件的定義Q在interface和implementation之間來回切換Q?br />54.CTRL+SHIFT+?在過E、函數、事件的定義處, 可蟩w到具體過程、函數、事件內?同上)<br />55.Tab 在object inspector視窗按tab鍵將游標Ud到屬性名區Q然後鍵入屬性名的開?br />字母可快速定位到該屬?br />56.Ctrl+Alt 按著Ctrl+Alt之後Q可用游標選擇一個矩形塊中的E式|<br />並可比它進行複製Q貼?br />57.Shift+↓、↑、→、← ?像素單位更改所選元件大?br />58.Ctrl+↓、↑、→、←?像素單位更改所選元件位|?br />59.Ctrl+E 快速選擇(呵呵Q試試吧Q很好玩的) <br />---------GExperts?--------<br />60.Ctrl+Alt+c a釋?br />61.Ctrl+Alt+u 取消a釋?br />62.Ctrl+Alt+h 生成?更詳細的a置在GExperts配置的Editor Experts屬性頁)<br />63.Ctrl+Alt+o 選擇應分隔W之間的語句<br />64.Ctrl+Alt+v 在對應的分隔W之間來回蟩?與已有快捷鍵有衝H,請更?<br /></span> </p> <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"> </p> <img src ="http://www.aygfsteel.com/liaojiyong/aggbug/98312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liaojiyong/" target="_blank">liaojiyong</a> 2007-02-06 14:58 <a href="http://www.aygfsteel.com/liaojiyong/archive/2007/02/06/98312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi ~程技巧常见实例问{?/title><link>http://www.aygfsteel.com/liaojiyong/archive/2007/01/17/94455.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 17 Jan 2007 08:27:00 GMT</pubDate><guid>http://www.aygfsteel.com/liaojiyong/archive/2007/01/17/94455.html</guid><wfw:comment>http://www.aygfsteel.com/liaojiyong/comments/94455.html</wfw:comment><comments>http://www.aygfsteel.com/liaojiyong/archive/2007/01/17/94455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liaojiyong/comments/commentRss/94455.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liaojiyong/services/trackbacks/94455.html</trackback:ping><description><![CDATA[ <p>1. delphi怎样调用外部EXE文gQ?</p> <p>  uses WinProcs; <br />  . <br />  begin <br />  WinExec(…?; <br />  . <br />  end. <br />  <br />  和调用Pascal库函数没什么两栗?</p> <p>  2. Delphi hint的字体和色彩如何改变 <br />  <br />  Delphi中Tapplication的属性有HintColor及HintPause。可以通过讄HintColor改变应用E序中的Hint的颜艌Ӏ通过讄HintPause改变触发Hint的时间。但遗憾的是QDelphi中Hint的字体不可以改变?</p> <p>  3. Delphi里如何计日?<br />  <br />  时间在delphi中是最Ҏ的,如下Q?</p> <p>  var ss : TDateTime </p> <p>  其实Tdatetime是一个双_ֺ的QҎQ它的小数点前表C天敎ͼ如, ss := ss + 20 表示从ss开始向?0天,如果 ss = 234.567 它就表示 234.567?当然是从公元0q开始计的Q?</p> <p>  4. 如何用Delphi~ScreenSaver? (null) <br />  <br />  屏幕保护E序无非是扩展名换成?SCR的可执行E序Q它接受两种命o行参敎ͼ <br />  s q行命o参数 <br />  c 配置命o参数 <br />  Windows通过向程序发-s命o行参数来启动E序。要注意的是Q程序的H口是无Ҏ和标题;H口大小应与屏幕大小一Pq要注意H口的事件的处理?</p> <p>  5. Delphi 中如何改目录的名?<br />  <br />  调用RenameFile函数Q如: <br />  RenameFile(’c:wang emp? ’c:wang mp?; </p> <p>  6. DELPHI昄JPEG囑փ文g </p> <p>  只要 uses中加?JPEGpQJPEG单元里是有一个TJPEGImagec?可定义一变量如Jpeg,用LoadFromFile调入某个JPEG文g, 然后用Form的Canvas.Draw(x,y,Jpeg)卛_昄. </p> <p>  7. Delphi中对Jpeg格式文g的处理?</p> <p>  (1).?Uses 中加?JPEG 单元; </p> <p>  (2).定义一个全E变?例如 var AJPEG : TJPEGImage; </p> <p>  (3).?Form ?OnCreate 事g中加?: </p> <p>  Canvas.Pen.Color:=clBlack; <br />  Canvas.Pen.Style:=psSolid; <br />  Canvas.Brush.color:=clBtnFace; <br />  Canvas.Brush.Style:=bsSolid; //此上是设|?Canvas 的一些属?便于以后 <br />  //Clear Form and Load a new JPEG file; <br />  Ajpeg:=TJpegImage.Create;//动态生成Ajpeg; <br />  Ajpeg.LoadFromFile(’D:Temp.jpg? //生成 Ajpeg ?调入 JPEG 文g</p> <p>  (4).?Form ?OnPain 事g中加入Canvas.Rectangle(2,2,560,430); //M个黑框的矩Ş图片围? <br />  <br />  x:=10; y:=10; <br />  Form1.Canvas.Draw(x,y,Ajpeg); //?x,y)为左上角输出 JPEG 文g; <br />  //实际上其作用是当囑Ş被破坏是使图形恢? </p> <p>  (5).在’Load’或’Browse’按钮的 onClick 事g中加? </p> <p>  begin <br />  if OpenPictureDialog1.Execute then <br />  begin <br />  Ajpeg.Free; //释放旧Ajpeg; <br />  Ajpeg:=TJpegImage.Create; //产生一个新的Ajpeg; <br />  Ajpeg.LoadFromFile(OpenPictureDialog1.Filename); //载入JPEG文g; <br />  end; <br />  Canvas.Rectangle(2,2,560,430); //Form Clear; <br />  x:=10; <br />  y:=10; <br />  Form1.Canvas.Draw(x,y,Ajpeg); //昄新的Ajpeg; <br />  end;</p> <p>  8. DELPHI3启动画面 </p> <p>  in your *.dbr files do it <br />  begin <br />  {Create a splash form} <br />  splash:=Tsplash.Create(self); <br />  splash.Show; <br />  splash.update <br />  Application.Initialize; <br />  Application.CreateForm(..) <br />  . <br />  . <br />  . <br />  splash.close; <br />  splash.free; <br />  Application.Run <br />  end;<br /></p> <img src ="http://www.aygfsteel.com/liaojiyong/aggbug/94455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liaojiyong/" target="_blank">liaojiyong</a> 2007-01-17 16:27 <a href="http://www.aygfsteel.com/liaojiyong/archive/2007/01/17/94455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi中代码z的 5 条忠??http://www.aygfsteel.com/liaojiyong/archive/2006/12/22/89539.htmlliaojiyongliaojiyongFri, 22 Dec 2006 07:19:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2006/12/22/89539.htmlhttp://www.aygfsteel.com/liaojiyong/comments/89539.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2006/12/22/89539.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/89539.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/89539.html写代码是一U艺术。用DelphiQQ何h都可以轻而易丑֜开发出某种软g、完成某些Q务。而完的代码则只有真正的高手才能写出。除了正的~进、大写、命名规则之外,hȝ记爱因斯坦的名言--单就是美。下面将谈及的五个代码问题,可能是初学者、甚至一些老鸟都会犯的错误?/p>


忠告一

布尔型变量的赋值操作应该是直接的。例如,在一个if/then/else语句中,if子句布型变量赋gؓTrueQ而else子句其赋ؓFalse。下面这D代码的写法是不好的Q?/p>

if If_Love_Delphi then
  Result:=True
else
  Result:=False;

而这样写比较好Q?/p>

Result:= If_Love_Delphi;


忠告?/p>

避免使用嵌套的if/then/if语句Q而用and来代ѝ下面这D代码太|嗦Q?/p>

if If_Love_Delphi then
  if If_Love_Linux then
TryKylix(Now);

应该q样写:

if If_Love_Delphi and If_Love_Linux then
  TryKylix(Now);

不用担心后面的判断语句会前执行。Project|Options|Compiler|Syntax Options|Complete Boolean eval选项通常是关闭的Q除非你选定q个)Q这保证了执行顺序不会颠倒?/p>

l合前两个忠告,假如你有一D这L代码Q?/p>

if If_Love_Delphi then
  if If_Love_Linux then
Result:=True;

可以把它改成:

Result:= If_Love_Delphi and If_Love_LinuxQ?/p>

单而言Q假如结果取决于一个条件判断,那么QResult:=True或者Result:=Falseq样的语句就是多此一举。在初始化布型变量的时候,可以l它们赋倹{不q根本用不着把一个布型变量初始化ؓFalse--Delphi在创个变量的时候就已经把它赋职位False了。相似的情况q有Q?/p>

对象的布型属?Boolean)Q自动被初始化ؓFalse (0)Q?br />整型变量(Integer)Q自动被初始化ؓ 0Q?br />字符?String)Q自动被初始化ؓI字W串?/p>


忠告?/p>

判断布尔型变量的值时Q无需?=True"或?=False"q样的语句。下面的写法不好Q?/p>

if (If_Love_Delphi=True) and
  (If_Love_Linux=False) then
    DoNotTryLinux;

对于函数的返回值或者一个属性是布尔型的情况Q应该这样写Q?/p>

if If_Love_Delphi and
  not If_Love_Linux then
DoNotTryLinux;


忠告?/p>

量不要?+"操作W进行字W串合ƈ。这样做效率太低了。下面的例子不好Q?/p>

ShowMessage('在下w高'+IntToStr(iHeight)+'cI体重'+IntToStr(iWeight)+'公斤?);

q样写会较好Q?/p>

ShowMessage(Format('在下w高%dQ体?d?, [iHeight,iWeight]));


忠告?/p>

量多用with语句。它不仅效率高,而且使代码更加易诅R比如,q段代码Q?/p>

if Sender if TEdit then
  if (TEdit(Sender).Text=') or
(TEdit(Sender).Text[TEdit(Sender).SelStart]=') or
  (TEdit(Sender).SelLength=
Length(TEdit(Sender).Text))
and (Key in ['a'..'z']) then
Key:=UpperCase(Key);

׃如这L代码来得z易读:

if Sender is TEdit then
  with Sender as TEdit do
if (Text=') or
   (Text[SelStart]=') or
   (SelLength=Length(Text)) and
   (Key in ['a'..'z'] then
  Key:=UpCase(Key);

 

 

 

(*//
标题:Delphi中徏议用的语句
整理:Zswang
q接:http://www.csdn.net/Expert/TopicView1.asp?id=724036
日期:2002-06-22
支持:wjhu111#21cn.com
//*)

{ No.1 判断逻辑cd }
var B: Boolean;
begin
  B := Boolean(2); //q样只是Z调试//B := True;
  if B = True then ShowMessage('B = True'); //不徏?/不安?br />  ///////
  if B then ShowMessage('B'); ////?br />end;

var B: Boolean;
begin
  if Edit1.Text = '? then //不徏?/烦琐
    B := True
  else B := False;
  ///////
  B := Edit1.Text = '?; ////?br />end;

{ No.2 临时SQL查询 }
begin
  QueryTemp.Close;
  QueryTemp.SQL.Text := 'SELECT SUM(金额) AS 合计 FROM 销售表';
  QueryTemp.Open; //不徏?/数据没有关闭造成资源费
  ShowMessage(Query1.FieldByName('合计').AsString);
  /////
  QueryTemp.SQL.Text := 'SELECT SUM(金额) AS 合计 FROM 销售表';
  QueryTemp.Open;
  ShowMessage(Query1.FieldByName('合计').AsString);
  QueryTemp.Close; //?/使用完就关闭
end;

{ No.3 获取记录?}
var
  vRecordCount: Integer;
begin
  Query1.SQL.Text := 'SELECT * FROM Table1'; //不徏?/严重费资源Q会取得很多不必要得信息
  Query1.Open;
  vRecordCount := Query1.RecordCount;
  Query1.Close;
  /////
  Query1.SQL.Text := 'SELECT COUNT(*) AS 记录?FROM Table1'; ////快速有效、只处理一条记?br />  Query1.Open;
  vRecordCount := Query1.FieldByName('记录?).AsInteger;
  Query1.Close;

  ShowMessage(IntToStr(vRecordCount));
end;

{ No.4 字段赋?}
begin
  Table1.Edit;
  Table1.FieldByName('姓名').AsString := Edit1.Text; //不徏?br />  Table1.FieldByName('日期').AsDateTime := Date;
  /////
  Table1['姓名'] := Edit1.Text; ////短、扩充性好
  //Table1.Fieldvalues['姓名'] := Edit1.Text; //Borland的方法。以及ParamValues[]
  Table1['日期'] := Date;
end;

{ No.5 使用Self指针 }
begin
  Edit1.Parent := Form1; //不徏?/Form1只是一个变?/如果没有分配资源怎么办?
  ///////
  Edit1.Parent := Self; //
end;

{ No.6 遍历数据?}
var
  I: Integer;
begin
  Query1.First;
  for I := 0 to Query1.RecordCount - 1 do begin //不徏?/Ҏ被媄?br />    Query1.Next;
    { };
  end;
  /////
  Query1.First;
  while not Query1.Eof do begin //
    { };
    Query1.Next;
  end;
end;

{ No.7 利用Sender参数Q代码通用 }
procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text = '' then //不徏?br />  Edit1.Color := clRed;
  ///////
  if TEdit(Sender).Text = '' then ////复制到EditXChange中很方便
  TEdit(Sender).Color := clRed;
end;

{ No.8 使用默认转换函数 }
var
  I: Integer;
begin
  I := StrToInt(Edit1.Text); //不徏?br />  ///////
  I := StrToIntDef(Edit1.Text, 0);////参考StrToFloatDef,StrToDateDef....不过q些只有Delphi6才有
end;

{ No.9 遍历数组 }
var
  I: Integer;
  A: array[0..9] of Integer;
begin
  for I := 0 to 9 do //不徏?br />  A[I] := I;
  ///////
  for I := Low(A) to High(A) do ////扩充性好
  A[I] := I;
end;

{ No.10 利用MaxInt帔R }
begin
  Caption := Copy(Edit1.Text, 3, Length(Edit1.Text) - 3 + 1); //不徏?br />  ///////
  Caption := Copy(Edit1.Text, 3, MaxInt); ////dQ少计算一?br />end;

{ No.11 Result函数指针 }
function FuncName: Boolean;
begin
  FuncName := True; //不徏?/q且攑֜赋值号双不能当普通变?br />  ///////
  Result := True; ////扩充性好
end;

function FuncSum(A: array of Integer): Integer;
var I: Integer;
begin
  Result := 0;
  for I := Low(A) to High(A) do
    Result := Result + A[I]; //可不能用 FuncSum := FuncSum + A[I];
end;

{ No.12 必须执行的代码、用try ... finally ... end语句 }
var
  vStringList: TStringList;
begin
  vStringList := TStringList.Create;
  vStringList.LoadFromFile('c:\temp.txt');
  ShowMessage(vStringList.Text);
  vStringList.Free; //不徏?/如果出现异常资源无法释?br />  ///////
  vStringList := TStringList.Create;
  try
    vStringList.LoadFromFile('c:\temp.txt');
    ShowMessage(vStringList.Text);
  finally ////即出现Exit都会执行
    vStringList.Free;
  end;
end;

//其他情况1
begin
  Screen.Cursor := crHourGlass;
  try
  { 耗时操作 }
  finally
  Screen.Cursor := crDefault;
  end;
end;
//其他情况2
begin
  Query1.DisableControls;
  try
  { 操作数据?}
  finally
    Query1.EnableControls;
  end;
end;




>>对象的布型属?Boolean)Q自动被初始化ؓFalse (0)Q?br />>>整型变量(Integer)Q自动被初始化ؓ 0Q?br />>>字符?String)Q自动被初始化ؓI字W串?/p>

q个不一?/p>

局部变量最好初始化一?不然会生莫名错?
特别? Integer, string, Pointer
偶的l验
Table1['姓名'] := Edit1.Text;   q个可以  但要是:
Edit1.Text := Table1['姓名']   //q个l对不行Q因时候要是NULL׃报错 q时候要FieldByName

己找到答案了QAnsiString也可以在Format和sprintf里用"%s"里指?

俺想数两三个AnsiStringq是可以?+"来连接,而更多的AnsiString应该用sprintf或Format?/p>

比较一?/p>

strMsg ="姓名: " + name + "q龄: " + IntToStr(age) + "L: " + IntToStr(num) + "工资: " + IntToStr(salary);

?/p>

strMsg.sprintf("姓名: %sq龄: %dL: %d工资: %d",name,age,num,salary);

后者可L比前者要略好Q生成的机器码只?/3, 更重要的是可以把sprintf里的格式字符串提出来集中l护Q而前者用"+"D的大量零字W串׃好处理?/p>

后者唯一~点是当有大量参数时Q需要花一点工夫将格式字符串和相应的参数对齐?br />








忠告1: 如果要用到with的地?h惌不能重构,其作ؓ一个函C?br />忠告2: 对于数据集的CLOSE请?br />       try
         DataSet.Open;
       finally
         DataSet.Close;
       end;
忠告3: 使用Sender?请先判断一下是不是nil, 是不是非你要的那个类?br />忠告4: FieldValue对null的处理实在是?误是用FieldByName().AsXXXXXq个
忠告5: 如果你要写一个长长的判断,q是写成一个函数吧,不要写进一个if then?那样,几天?你就看不懂?br />








1、关于WITHQ我个h基本不喜Ƣ用Q因Z带来的是可读性非常差。一个参数类Q几个属性的时候,用的q好Q而且目lh同要比较熟练q个c!如果二个以上的参数类Q天知道怎么读这一段的WITH代码?br />2、关于字W串Q用+和Formatq两个我一般是看情늚。有些字W串边境用Format很不好使,比如对一些SQL语句的拼写,多个SQL?q接代码易读性高。而且q个效率q算好!然而一些楼主都提及的字W串Q当然用Format要好Q同hL好Q我觉得在用到字符Q串Q操作的时候可L是主要的,如果跟效率搭上边了,长字W串处理Q我觉得已经是设计问题了?br />3、关于FOR和WHILE的比较,数据集的遍历当然用WHILE。RecordCount除非你不用数据集q渡Q如果用了,q个pȝ大了Q维护死你,不可预见性太高了。这不是效率问题Q是你写出来的Y件能不能用的问题?br />4、关于FieldByName。这个嘛提下Q我一直都是用它的。除非特D性情会用Fields[]。要不然Q别人的软g交给你维护的时候,你就{着哭吧Q查字段你就得花上所有的加班旉。?/p>

可能我说的没道理Q大家就指出来,如果能证明就更好了,q样我又学到东西了。?br />



liaojiyong 2006-12-22 15:19 发表评论
]]>
delphi函數學習http://www.aygfsteel.com/liaojiyong/archive/2006/09/14/69589.htmlliaojiyongliaojiyongThu, 14 Sep 2006 03:21:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2006/09/14/69589.htmlhttp://www.aygfsteel.com/liaojiyong/comments/69589.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2006/09/14/69589.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/69589.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/69589.htmlfunction Assigned(var P): Boolean;判斷過程或指針是否存?br />Description
  Use Assigned to determine whether the pointer or procedure referenced by P is nil. P must be a variable reference of a pointer or procedural type. Assigned(P) corresponds to the test P<> nil for a pointer variable, and @P <> nil for a procedural variable.
  Assigned returns False if P is nil, True otherwise.

liaojiyong 2006-09-14 11:21 发表评论
]]>
Delphi初学者应心的六大陷阱(转)http://www.aygfsteel.com/liaojiyong/archive/2006/08/30/66582.htmlliaojiyongliaojiyongWed, 30 Aug 2006 02:09:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2006/08/30/66582.htmlhttp://www.aygfsteel.com/liaojiyong/comments/66582.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2006/08/30/66582.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/66582.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/66582.html  
  那么如何才能避免q些错误了,量走弯\了?W者从事DelphiI开发多q_下面把我的l验ȝ介绍l大Ӟ希望帮助到初学DelphiI的朋友?br />  
  问题一Q对cȝ概念理解不到位,E序开发中不能灉|q用。请看下面的E序Q?br />  
  unit Unit1;
  interface
  
  uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, shellApi;
  
  type
  TForm1 = class(TForm)
  Button1: TButton;
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  
  var
  Form1: TForm1;
  implementation
  
  uses CommonUni;
  
  
  在DelphiI中新Z个程序,然后d一个按钮,得C下面q段E序。这应该是大家相当熟悉的一D늨序,可也是q段E序Q让许多的h在做开发很长时间后Q还不能很好理解?该程序可分ؓ三个个部分:W一部分Q单元头Q从起始位置到TYPE之前Q;W二部分Q从TYPE到END的部分)Q定义了一个从Tforml承q来的窗体类Q它包含一个Tbutttoncd的成员。最后一部分QVar到结束的部分Q,定义了一个Tform1cd的变量。问题就出在q里了,许多以ؓq最后一D也是窗体类的一部分Q在该窗体类中经常写L代码QForm1.caption = ’窗体标题’,DE序q行时得不到所要的l果。其实最后一部分Ҏ属于窗体类的定义,它们不过是在同一个UNIT中而已Q所以代码应该这样写Qself.caption = ’窗体标题’;
  
  问题二:释攑֯象的代码写在H体的CLOSE事g中,DAccess Violation…的错误?br />  
  一个窗体的关闭QCLOSEQ与H体的析构(DestoryQ,在系l处理上是有区别的,当一个窗体关闭时Q窗体实际上只是隐藏h了,它占用的资源q未从内存中释放了,我们q是可访问到H体中的数据Q而当H体响应DESTORY事gӞH体不仅仅是隐藏h了,而且占用的系l资源也释放出来了。因此,如果一个窗体关闭后Q我们还惌里面的对象,应该将q些对象的FREE代码写的H体的(DESTORYQ事件中?br />  
  问题三:不加区别C用String与shortString数据cd?br />  
  Stringcd与shortStringcd是有区别的,在默认的情况下(取决?H开养IQ如果你一个变量定义ؓstringcdQ那么会被处理成一个ANSIStringcd。这U类型是动态分配内存的Q以NULL为结,最大长度ؓ4GQ而shortString的最大长度是不能过255个字W的。由于ANSIstring是生存期自管理类型的数据Q这意昧着q种cd的数据需要更多的pȝ开销Q所以在E序开发中QshortString能满求的话,尽量用它Q以提高E序的运行速度?br />  
  问题四:q行数据cd转换时处理不当,犯错误最多的是字符型到数字/点型的转换?br />  
  当将一个字W型数据转换为整型时Q我们经常这样写 I := StrToInt(aEdit.Text); 表面上看q一句,没有M问题Q函数的使用Q格式的写法Q都是正的。可有一U情冉|们却没有考虑刎ͼ如果用户在aEdit文本框中输入的不是数字文本的话,会怎么样呢Q调用还会成功吗Q显然是不会的,pȝ肯定会弹Z个英文的错误Q让我们的用户不知所措的。正的写法是:I := StrToIntDef(aEdit.Text, 0); q样当{换不成功ӞW二个参数就会赋lI。类似的函数q有strToInt64DefQStrToFloatDef{等?br />  
  问题五:单元引用的问题。用那个函敎ͼ׃定要引用函数所在的单元?br />  
  比如在程序开发中我们要用C个API函数ExtractIconExQ从E序或是文g中获得一个图标)Q那么就一要在它的USES中把单元shellApi加入q来Q否则是不能通过~译了。类似的情况q有很多Q我们常怋用帮助文档,从中查找需要的函数Q可当程序编译时Q却通不q,Z么呢Q就是因为没有在USES中引用函数所在的单元。这个问题初学者犯得最多,应该加倍注意?br />  
  问题六:避免循环引用Q尽可能通过W三个单元实现。如果确实不可避免,应在不同位置q行引用。所谓@环引用就是A单元引用了B单元Q而反q来QB单元又引用了A单元Q生@环。我们还看上面的那一D늨序,在interface的下面有一个USES语句Q而在implementation的下面,又有一个USES语句。@环如果确实不可避免,那么应该在A单元中的引用写在W一个USES语句中,而将B单元中的引用写在W二个USES语句中?br />

liaojiyong 2006-08-30 10:09 发表评论
]]>
Delphi 5.0 快捷?/title><link>http://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64852.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Mon, 21 Aug 2006 10:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64852.html</guid><wfw:comment>http://www.aygfsteel.com/liaojiyong/comments/64852.html</wfw:comment><comments>http://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64852.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liaojiyong/comments/commentRss/64852.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liaojiyong/services/trackbacks/64852.html</trackback:ping><description><![CDATA[ <p>下面的快捷键大部分在Delphi 5.0的菜单中找不刎ͼ其中有一些还是非常有用的?/p> <p> Ctrl+PageUp      光标移x屏的W一行,屏幕不滚动?br /> Ctrl+PageDown    光标移x屏的最后一行,屏幕不滚动?br /> Ctrl+↓        ?向下滚动屏幕Q光标跟随滚动不出本屏?br /> Ctrl+↑        ?向上滚动屏幕Q光标跟随滚动不出本屏?br /> Ctrl+Shift+NUM   在光标行讄最多九个时标志号Q对临时切换非常有用?br />    行的左边出C本书Q封面有NUMQ再按一ơ取消设|。?<br /> Ctrl+NUM         直接光标蟩到NUM处,NUM是用Ctrl+Shift+NUM讄的标受?br />    NUM不能用小键盘?br /> Ctrl+Home        光标移x件头?br /> Ctrl+End         光标移x件尾?br /> Ctrl+B           Buffer ListH口?br /> Ctrl+I           同Tab键?br /> Ctrl+M           同Enter键?br /> Ctrl+N           同Enter键,但光标位|保持不变?br /> Ctrl+T           删除光标双的一个单词?br /> Ctrl+Y           删除光标所在行?/p> <p> Ctrl+Shift+↑  ?光标在函C内时Q将光标快速移臛_前函数声明处?br /> Ctrl+Shift+↓  ?光标在函数声明行Ӟ光标快速移臛_数定义处?br /> Ctrl+Shift+C     声明一个过E或函数后,直接生成q程或函数的名称、begin、end;<br /> Ctrl+Shift+E     光标在EditH口和ExplorerH口间切换?br /> Ctrl+Shift+G     插入GUID?br /> Ctrl+Shift+J     弹出Delphi语句提示H口Q选择所需语句自动完成一条语句?br /> Ctrl+Shift+T     在光标行加入To-Do注释?br /> Ctrl+Shift+Y     删除光标之后x行末之间的文本?/p> <p> Ctrl+F3          Call StackH口?br /> Ctrl+F4          {于File菜单中的CloseV?/p> <p> Ctrl+鼠标转轮    加速滚屏?/p> <p> Shift+F8         调试时弹出CPUH口?br /> Shift+F10        {于鼠标右键QWindows快捷键)?/p> <p> Alt+F4           关闭所有编辑框中打开的源E序文gQ但不关闭项目?br /></p> <img src ="http://www.aygfsteel.com/liaojiyong/aggbug/64852.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liaojiyong/" target="_blank">liaojiyong</a> 2006-08-21 18:04 <a href="http://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64852.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>delphi学习W记http://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64711.htmlliaojiyongliaojiyongMon, 21 Aug 2006 01:38:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64711.htmlhttp://www.aygfsteel.com/liaojiyong/comments/64711.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2006/08/21/64711.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/64711.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/64711.html1、指针:@攑֜变量前面获取变量的地址Qƈ可以把地址赋gؓ同样数据cd得指针。把^攑֜一个数据类型的前面可以定义一个指针,把^攑֜一个指针后面,可以获得该指针指向地址I间的类宏V?br />不可以将指针所指地址中的cd直接赋值给其他cd的变量?br />2、变体类?variant)QVariant 能支持所有的单数据类型及OLE自动化对象。注意Variant不能表达Object Pascal对象?br />3、强制类型{换:只有当两个变量的数据长度一hQ才能对变量q行强制转换。例如:不能把一个Doublecd转换成Integer?br />
q算W?Operators)Q?br />   1、赋D符QNumber:=5
   2、比较运符Q?br />   3、逻辑q算W:
   4、算术运符Q?br />   5、位q算W:
   6、加减运符Q?br />   7、指针运符Q?br />   8、基和运符Q?br />   9、类q算W:
   10、@q算W:
  
        一般来Ԍ在过E和函数中,Mcd说明都在变量说明之前Q而Q何变量说明都在常量之前。但是,只要遵从说明必须在过E与函数的标题之后,而且在程序代码之前,x有效的?br />
不管一个库单元是否和一个窗体有养I库单元的l构都是相同的。其l构如下Q 

unit <库单元名U?/font>> 

interface 

uses <选择性的库单元列?/font>>

{公有说明} 

implementation 

uses <选择性的库单元列?/font>>

{U有说明}

{q程和函数的执行部分}

    initialization {选择性的}

{选择性的初始化程序}

end.



liaojiyong 2006-08-21 09:38 发表评论
]]>
DELPHI基础教程http://www.aygfsteel.com/liaojiyong/archive/2006/08/18/64409.htmlliaojiyongliaojiyongFri, 18 Aug 2006 09:31:00 GMThttp://www.aygfsteel.com/liaojiyong/archive/2006/08/18/64409.htmlhttp://www.aygfsteel.com/liaojiyong/comments/64409.htmlhttp://www.aygfsteel.com/liaojiyong/archive/2006/08/18/64409.html#Feedback0http://www.aygfsteel.com/liaojiyong/comments/commentRss/64409.htmlhttp://www.aygfsteel.com/liaojiyong/services/trackbacks/64409.htmlhttp://www.cnread.net/cnread1/dnwl/cxsj/delphi/jcjc/index.html

liaojiyong 2006-08-18 17:31 发表评论
]]>
վ֩ģ壺 | | ֶ| Ϫ| ˳| | | ͨ| | | ɽ| ʷ| «| н| | ĩ| | | | ľ| | | ³ɽ| | | | | | 㽭ʡ| ¡| | | ͭϿ| | | | | | Ҷ| | |