線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1501
推到 Plurk!
推到 Facebook!

請問 as 運算子的用法和意義?

答題得分者是:Clarinet
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-07 10:37:50 IP:210.241.xxx.xxx 訂閱
子曰 : 不懂則問; 雖懂有疑問則問; 雖懂想知更多則問
程式如附件
請問下面這行的意義 ? as 是什麼意思 ?

<textarea class="delphi" rows="10" cols="60" name="code"> pDoc := wb.Document as IHTMLDocument2; </textarea>
查過 Help 但是不懂
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-07 10:56:47 IP:125.225.xxx.xxx 未訂閱
pcboy你好
看你的程式碼應該出自qoo1234所提供的網址吧
能否請你回到http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=86584來作討論
你所回覆的內容會讓該篇文章提到討論區的最前頭,大家其實都看得到
我自己是點"近期文章"http://delphi.ktop.com.tw/recent_post.php
你所發表的文章從這裡都看得到,實在是不需要再重發一篇
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-07 11:33:12 IP:210.241.xxx.xxx 訂閱
是 qoo1234 提供的網址沒錯
會另外發一篇
1.因為這是另一個問題
2.如果有其他人回答了 as 問題, 將無法再給分了

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-08 09:47:06 IP:220.228.xxx.xxx 訂閱
pDoc     := wb.Document as IHTMLDocument2;
此行的作用是取得IHTMLDocument2的界面,並指定給pDoc
因此,pDoc一定是宣告為IHTMLDocument2的型態界面,或者為不定型態的Variant

as的作用是從最上層的界面,來查詢到指定的下層界面。
所以,此行是從Document的界面,來查詢IHTMLDocument2的界面介接口,取得此介接口後,即可依此界面進行各項操作。
若沒有所屬界面,會產生例外錯誤,因此,可用
if wb.Document.QueryInterface(IHTMLDocument2, pDoc) then來判斷是否有所屬的界面可使用。

這些是針對Interface而論。

另,若是Delphi的Object類的,則as代表是把某一個物件轉成另一個物件的用法,此可用is先進行判斷。

希望你聽的懂!

------
GPS(全球衛星定位系統)
http://www.allgps.com
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-08 12:02:52 IP:210.241.xxx.xxx 訂閱
不懂 :(
小弟去看了一下階層
TObject - TPersistent - TComponent - TControl - TWinControl - TOleControl - TWebBrowser

沒有看到 IHTMLDocument2
WebBrowser 如果自己有 Interface , 何必要指定成 IHTMLDocument2 介面 ?
如果沒有介面, 指定為 IHTMLDocument2 介面也沒用吧
例如不可能 pDoc := Memo1 as IHTMLDocument2 吧

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-02-08 18:27:14 IP:220.228.xxx.xxx 訂閱
Memo1的類別為TMemo物件,而不是Interface,所以二者是不同的。

Interface為微軟的系統架構概念,因此,你看到的WebBrowser為一個架構,裡面有許多的介面(Interface),負責各自的功能。
如:IHTMLWindow, IHTMLWindow1, IHTMLWindow2.....之類的都是介面。

其架構可至MSDN查詢。

Office系列的應用軟體也都是Interface的架構。

用Delphi開發DCOM之類的程式,或者遠端三層式的系統架構使用的,都是Interface。

這樣瞭解了嗎?


------
GPS(全球衛星定位系統)
http://www.allgps.com
系統時間:2024-05-13 19:43:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!