首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級(jí) | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

2011計(jì)算機(jī)等級(jí)考試Delphi面向?qū)ο蟮木幊谭椒?/h1>

本章中,我們將討論Object Pascal的主要特點(diǎn),并講解如何在事件處理過程和其他應(yīng)用程序中,使用它來編制程序代碼。

  2.2.6 對(duì)象變量的賦值

  如果兩個(gè)變量類型相同或兼容,您可以把其中一個(gè)對(duì)象變量賦給另一個(gè)對(duì)象變量。例如,對(duì)象TForm1和TForm2都是從TForm繼承下來的類型,而且Form1和Form2已被說明過,那么您可以把Form1賦給Form2:

  Form2 :=Form1;

  只要賦值的對(duì)象變量是被賦值的對(duì)象變量的祖先類型,您就可以將一個(gè)對(duì)象變量賦給另一個(gè)對(duì)象變量。例如,下面是一個(gè)TDataForm的類型說明,在變量說明部分一共說明了兩個(gè)變量:AForm和DataForm。

  type

  TDataForm = class(TForm)

  Button1:TButton;

  Edit1:TEdit;

  DataGrid1:TDataGrid;

  Database1:TDatabase;

  TableSet1:TTableSet;

  VisibleSession1:TVisibleSession;

  private

  {私有域說明}

  public

  {公有域說明}

  end;

  var

  AForm:TForm;

  DataForm:TDataForm;

  因?yàn)門DataForm是TForm類型的后代,所以Dataform是AForm的后代,因此下面的賦值語句是合法的:

  AForm :=DataForm;

  這一點(diǎn)在Delphi中是極為重要的。讓我們來看一下應(yīng)用程序調(diào)用事件處理過程的過程,下面是一個(gè)按鈕部件的OnClick事件處理過程:

  procedure TForm1.Button1Click(Sender:TObject);

  begin

  end;

  您可以看到TObject類在Delphi的Visual Component Library的頂部,這就意味著所有的Delphi對(duì)象都是TObject的后代。因?yàn)镾ender是TObject類型,所以任何對(duì)象都可以賦值給它。雖然您沒有看見賦值的程序代碼,但事實(shí)上發(fā)生事件的部件或控制部件已經(jīng)賦給Sender了,這就是說Sender的值是響應(yīng)發(fā)生事件的部件或控制部件的。

  您可以使用保留字is來測(cè)試Sender以便找到調(diào)用這個(gè)事件處理過程的部件或控制部件的類型。Delphi中的一個(gè)顯示drag-and-drop的DRAGDROP.DPR工程。加載它,可以查閱到DROPFONT.PAS庫(kù)單元的代碼,在Memo1DragOver方法中檢查了一個(gè)對(duì)象變量的類型。在這種情形下,參數(shù)是Source而不是Sender。

  procrdure TForm1.Memo1DragOver(SenderSource:TObject;X,Y:integer;

  State:TDragState;var Accept:Boolean);

  begin

  Accept :=Source is TLabel;

  end;

  Source參數(shù)也是TObject類型,Source被賦值為那個(gè)被拖曳的對(duì)象。用Memo1DragOver方法的目的是確保只有標(biāo)簽可以被拖曳。Accept是布爾型參數(shù),如果Accept為True,那么用戶選擇的部件可以被拖曳;反之當(dāng)Accept的值為False時(shí),用戶就不可以拖曳選擇控制部件。is保留字檢查Source是否TLabel的類型,所以Accept只有在用戶拖曳一個(gè)標(biāo)簽時(shí)才為真,并作為變參輸出到函數(shù)之外。

  下面的drag-and-drop展示的Memo1DragDrop事件處理過程中也使用了Source參數(shù)。這個(gè)方法是為了把Memo部件的字型改變成和放入這個(gè)備注控制部件的標(biāo)簽一樣的字型:

  procedure TForm1.Memo1DragDrop(SenderSource:TObject;

  X,Y:Integer);

  begin

  Memo1.Font := (Source as TLabel).Font;

  end;

  當(dāng)您在這個(gè)事件處理過程中編寫賦值語句時(shí),開發(fā)人員并不知道用戶會(huì)放入哪一個(gè)標(biāo)簽,只有通過參考這個(gè)標(biāo)簽的名稱(Source as TLabel)用戶才能知道,并把標(biāo)簽類型賦給Memo1.TFont。Source包含了用戶拖放控制部件的名稱,只有當(dāng)Source是一個(gè)標(biāo)簽時(shí),這個(gè)事件處理過程才允許這個(gè)賦值發(fā)生。

  相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題
       預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
       2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及入口
       2010年9月計(jì)算機(jī)等考成績(jī)查詢短信免費(fèi)提醒開通
文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。