ÔÚDelphi³ÌÐòÖÐÓ¦ÓÃIEä¯ÀÀÆ÷¿Ø¼þ 2000-09-18 00:00:00¡¤
Íõ·¢¾ü¡¤delhpi¼¼ÊõÍø ¡¡¡¡´ó¸Å´ó¼Ò»¹¼ÇµÃDelphiµÄ·¶Àý³ÌÐòÖеÄÄǸöä¯ÀÀÆ÷µÄÀý×Ó°É¡£ÔÚÄǸöÀý×ÓÖУ¬ÀûÓÿؼþTHttpµÄÊôÐԺͷ½·¨ÖÆ×÷ÁËÒ»¸öä¯ÀÀÆ÷¡£¸ÃÀý×ÓÓÃÓÚÀí½âTHttp¿Ø¼þµÄʹÓ÷½·¨£¬È·Êµ²»´í¡£µ«ºÜÉÙÓÐÈË»áÓÃËü×÷Ϊһ¸öÕæÕýµÄä¯ÀÀÆ÷£¬ÔÒòºÜ¼òµ¥£¬¹¦ÄÜÌ«ÓÐÏÞÁË£¬²»Ö§³ÖFrame£¬²»Ö§³ÖScript½Å±¾ÓïÑÔ£¬²»ÄÜÒÔ±¾µØÎļþ·½Ê½²é¿´HTMLÎļþµÈµÈ¡£´ó²¿·ÖÓû§ÔÚʹÓÃInternet
Explorer»òNetscape Navigator£»ÎÒÃdzÌÐòÔ±Ò²ÀÖÒâʹÓÃÏֳɵÄä¯ÀÀÆ÷£¬ÔÚÐèҪʹÓÃä¯ÀÀÆ÷ʱ£¬¾ÍÔÚ³ÌÐòÖÐͨ¹ýWinExec»òCreateProcessµÈ·½·¨µ÷ÓÃÍⲿä¯ÀÀÆ÷ÈÃÓû§Ê¹Óá£
¡¡¡¡ÕâÖÖ·½·¨È·ÊµÍ¦Ê¡Êµģ¬µ«×ÜÈñÊÕßÓе㲻¸ÊÐÄ£¬°Ñ³ÌÐò¿ØÖÆÈ¨ÈøøÆäËüÍⲿ³ÌÐò×ÜÈÃ×Ô¼ººÜ¸Ðµ½Âé·³£¬ÓÈÆäµ±Ó¦ÓÃÈí¼þµÄʹÓÃÕߵļÆËã»úʹÓÃˮƽ²»ÊǺܸßʱ¡£Èç¹ûÄÜÓÐÒ»¸öä¯ÀÀÆ÷¿Ø¼þ£¬¾Í¿É°Ñä¯ÀÀÆ÷ǶÈëµ½×Ô¼ºµÄ³ÌÐòÖУ¬ÄÇÓ¦¸Ãͦ²»´íµÄ¡£
¡¡¡¡Èç¹ûÄãµÄÈí¼þµÄÍⲿ»·¾³ÊÇWIN95+IE»òWIN98(ÕâÑùµÄÈí¼þʹÓÃÂÊ»¹ºÜ¸ßµÄ)£¬ÄÇÑùÔÚϵͳÖоÍÒѾÓÐÁËÒ»¸öIEä¯ÀÀÆ÷¿Ø¼þ¿ÉÒÔʹÓÃÁË£¬Ò²ÐíÊÇÄ㳤ʱ¼äûÓз¢¾õ°É£¬±ðÀË·Ñ×ÊÔ´ÁË£¬ÄÃÀ´Ê¹Óðɡ£µ±ÏµÍ³ÖÐÒѾ°²×°ÁËIE3.X»òIE4.Xʱ£¬IEä¯ÀÀÆ÷¿Ø¼þÒѾע²áµ½ÏµÍ³ÖÐÁË£¬ÇëÔËÐÐRegedit£¬Óᰱ༡±²Ëµ¥Ïµġ°²éÕÒ¡±¹¦ÄÜ£¬²éÕÒ¡°Shell.Explorer¡±¼üÃû£¬Äã»á·¢ÏÖIE¿Ø¼þÒѾ×÷ΪActiveX¿Ø¼þ×¢²áÔÚϵͳÖÐÁË£¬ÕâÑù¾ÍÎÒÃÇ¿ÉÒÔÔÚDelphiÖÐʹÓøÿؼþÁË¡£
Ò»¡¢ ÔÚDelphiÖÐÒýÈëIEä¯ÀÀÆ÷¿Ø¼þ
¡¡¡¡ÓÉÓÚIEä¯ÀÀÆ÷¿Ø¼þÐèÒªÌṩÏÔʾ¹¦ÄܲÅÄÜʹÓã¬ËùÒÔ²»ÄÜÔÚ³ÌÐòÖÐÓÃCreateOleObjectÈ¡µÃÒ»¸öʵÀýºóÖ±½ÓʹÓÃÆäÊôÐԺͷ½·¨£¬·ñÔò³ÌÐòÔÚÔËÐÐʱ»áÒýÆð´íÎó£»ÕâʱÐèÒªÓÃDelphiÖÐÌṩµÄ¡°Import
ActiveX Control¡±¹¦ÄÜ£¬²Ù×÷·½·¨¼ûÏÂËùÊö¡£
¡¡¡¡ÔÚ¡°Components¡±²Ëµ¥ÖУ¬µ÷Óá°Import ActiveX Control¡±¹¦ÄÜ£¬ÔÚRegistered Controls(×¢²á¿Ø¼þ)ÁбíÖÐÑ¡Ôñ¡°Microsoft
Internet Controls(Version1.1)¡±£¬Ï·½µÄÌáʾÀ¸ÖÐÏÔʾ³öÆä·¾¶ÎªC:\PWin98\System\SHDOCVW.DLL£¬ÔÚClass
Names(ÀàÐÍÁбí)ÖÐÁгöÁË¿É×¢²áµÄÈý¸ö¿Ø¼þ£ºTWebBrowser_V1¡¢TWebBrowserºÍTShellFolderViewOC£¬·Ö±ðΪIE3ä¯ÀÀÆ÷¿Ø¼þ¡¢IE4ä¯ÀÀÆ÷¿Ø¼þºÍ¡°MicrosoftÍâ¿ÇÎļþ¼Ð²é¿´Â·ÓÉÆ÷¡±¿Ø¼þ¡£µ¥»÷Install½øÐа²×°¡£°²×°Íê³Éºó£¬ÔÚ¡°ActiveX¡±¿Ø¼þÀ¸ÖУ¬½«Ôö¼ÓÈý¸ö¿Ø¼þ£¬·Ö±ðΪTWebBrowser_V1¡¢TWebBrowserºÍTShellFolderViewOC£»ÔÚDelphiµÄImportsĿ¼Ï£¬½«´´½¨Ò»¸öÎļþSHDocVw_TLB.PAS£¬ÆäÖÐÓÐÕâÈý¸ö¿Ø¼þµÄ°üװϸ½Ú£¬µ±È»º¬¿Ø¼þµÄÊôÐԺͷ½·¨ËµÃ÷ÁË£¬ ÉÒÔ×÷ΪÎÒÃÇʹÓÿؼþµÄ²Î¿¼×ÊÁÏ¡£
¶þ¡¢ ÔÚDelphi³ÌÐòÖÐʹÓÃIEä¯ÀÀÆ÷¿Ø¼þ
¡¡¡¡ÒÔTWebBrowser(IE4ä¯ÀÀÆ÷¿Ø¼þ)ΪÀý×Ó¡£
TWebBrowserµÄ³£¼ûÊôÐԺͷ½·¨Ö÷ÒªÓУº
GoBack£º·½·¨£¬ºóÍ˵½ÉÏÒ»¸öÒ³Ãæ¡£
GoForward£º·½·¨£¬Ç°½øµ½ÏÂÒ»¸öÒ³Ãæ¡£
GoHome£º·½·¨£¬µ÷ÓÃĬÈϵÄÖ÷Ò³Ò³Ãæ£¬¸ÃÒ³ÃæÔÚIEµÄÑ¡ÏîÖÐÉ趨¡£
GoSearch£º·½·¨£¬µ÷ÓÃĬÈϵÄËÑË÷Ò³Ãæ£¬¸ÃÒ³ÃæÔÚIEµÄÑ¡ÏîÖÐÉ趨¡£
Navigate(const URL: WideString; var Flags, TargetFrameName, PostData,
Headers: OleVariant)£º·½·¨£¬µ÷ÓÃÖ¸¶¨Ò³Ã棬¾ßÌå²ÎÊýÈçÏ£º
URL£ºÖ¸¶¨Ò³ÃæµÄURL¡£ Flags£ºWordÀàÐÍ£¬×÷Óû¹²»Çå³þ£¬¿ÉÉèΪ0¡£
TargetFrameName£ºWideString£¬´ò¿ªÒ³ÃæËùÔÚµÄFrame£¬Îª¿Õ×Ö·û´®Ê±ÔÚµ±Ç°µÄFrameÖдò¿ª£»TargetFrameNameÖ¸¶¨µÄFrame´æÔÚʱÔÚFrameÖдò¿ª£»
TargetFrameNameÖ¸¶¨µÄFrame²»´æÔÚʱÔòн¨Ò»¸ö´°¿Ú´ò¿ª£¬´Ëʱ¾ÍÏ൱ÓÚµ÷ÓÃÍⲿµÄIEä¯ÀÀÆ÷ÁË¡£
PostData£ºboolean£¬ÊÇ·ñÔÊÐí·¢ËÍÊý¾Ý¡£
Headers£ºWideString£¬Òª·¢Ë͵ÄURLÇëÇóµÄÍ·²¿Êý¾Ý¡£
Refresh£º·½·¨£¬Ë¢Ðµ±Ç°Ò³Ãæ¡£
Stop£º·½·¨£¬Í£Ö¹µ÷Óûò´ò¿ªµ±Ç°Ò³Ãæ¡£
LocationName£ºÊôÐÔ(WideString)£¬µ±Ç°Î»ÖõÄÃû³Æ¡£
LocationURL£ºÊôÐÔ(WideString)£¬µ±Ç°Î»ÖõÄURL¡£
Busy: ÊôÐÔ(Boolean)£¬ÊÇ·ñÕýæ¡£
Visible: ÊôÐÔ(Boolean)£¬ä¯ÀÀÆ÷´°¿ÚÊÇ·ñ¿É¼û¡£
(ÒÔÏÂÊôÐÔΪÔÚTWebBrowserÐÂÔö£¬TWebBrowser_V1ÖÐûÓУ¬Æä×÷ÓÃÓдý̽Ë÷)
StatusBar: ÊôÐÔ(Boolean)£¬ÊÇ·ñÏÔʾ״̬À¸¡£
StatusText: ÊôÐÔ(WideString)£¬×´Ì¬À¸ÄÚÈÝ¡£
ToolBar: ÊôÐÔ(SYSINT)£¬¹¤¾ßÀ¸ÖеÄÄÚÈÝ¡£
MenuBar: ÊôÐÔ(Boolean)£¬ÊÇ·ñÏÔʾ²Ëµ¥Ìõ¡£
FullScreen: ÊôÐÔ(Boolean)£¬ÊÇ·ñÈ«ÆÁÏÔʾ¡£
Offline: ÊôÐÔ(Boolean)£¬ÊÇ·ñÍÑ»úä¯ÀÀ¡£
AddressBar: ÊôÐÔ(Boolean)£¬ÊÇ·ñÏÔʾµØÖ·À¸¡£
TWebBrowserµÄ³£¼ûʼþÖ÷ÒªÓУº
OnStatusTextChange = procedure(Sender: TObject; const Text: WideString) of object;
¡¡¡¡ÔÚ״̬À¸ÌáʾÐÅÏ¢±ä»¯Ê±·¢Éú£¬²ÎÊýTextΪµ±Ç°×´Ì¬À¸ÌáʾÐÅÏ¢£¬ÎÒÃÇ¿ÉÒÔ¸ù¾Ý¸ÃÐÅÏ¢À´¸üÐÂÎÒÃÇ×Ô¼ºµÄ״̬À¸ÌáʾÐÅÏ¢»ò´¦ÀíÆäËüµÄÊÂÎñ£®
OnProgressChange = procedure(Sender: TObject; Progress, ProgressMax: Integer)
of object;
¡¡¡¡ÔÚ´ò¿ªÒ³ÃæµÄ½ø¶È±ä»¯Ê±·¢Éú£¬²ÎÊýProgressΪµ±Ç°½ø¶È£¬ProgressMaxΪ×ܽø¶È£¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÕâÁ½¸ö²ÎÊýÀ´¸üÐÂÎÒÃÇ×Ô¼ºµÄ״̬À¸ÌáʾÐÅÏ¢»ò´¦ÀíÆäËüµÄÊÂÎñ£®
OnCommandStateChange = procedure(Sender: TObject; Command: Integer; Enable: WordBool)
of object;
¡¡¡¡µ±Ö´ÐÐеÄÃüÁîʱ·¢Éú£¬CommandΪÃüÁî±êʶ£¬EnableΪÊÇ·ñÔÊÐíÖ´ÐиÃÃüÁ
OnTitleChange = procedure(Sender: TObject; const Text: WideString) of object;
¡¡¡¡ÔÚÒ³ÃæµÄ±êÌâ·¢Éú±ä»¯Ê±·¢Éú£¬TextΪµ±Ç°±êÌ⣮
OnPropertyChange = procedure(Sender: TObject; const Property_: WideString) of
object;
¡¡¡¡ÔÚÒ³ÃæµÄÊôÐÔ·¢Éú±ä»¯Ê±·¢Éú£¬Property_ΪÊôÐÔÃû³Æ
OnDownloadComplete: TNotifyEvent
¡¡¡¡ÔÚÏÂÔØÒ³ÃæÍê³Éºó·¢Éú£®
OnDownloadBegin: TNotifyEvent
¡¡¡¡ÔÚÏÂÔØÒ³Ãæ¿ªÊ¼Ç°·¢Éú£®
Èý¡¢ ÔÚDelphi³ÌÐòÖÐÓ¦ÓÃIEä¯ÀÀÆ÷¿Ø¼þµÄÁ½¸öÀý×Ó
£¨£±£©ÖÆ×÷×Ô¼ºµÄ°ïÖúϵͳ
¡¡¡¡ÎÒÃÇÀûÓÃIEä¯ÀÀÆ÷¿Ø¼þΪÓû§ÖÆ×÷ÁËÒ»¸ö°ïÖúϵͳ£¬°ïÖúÎļþÓɶà¸öHTMLÎļþ×é³É£¬Ò»¸öÖ÷Ìâ¶ÔÓ¦Ò»¸ö
HTMLÎļþ(Topic.HTM)£¬Ã¿¸öÖ÷ÌâϵÄÏîÄ¿¶ÔÓ¦HTMLÎļþÖеÄÒ»¸ö±êÇ©(#Item)¡£ÕâÑùÔÚÎÒÃǵÄϵͳÖУ¬¾Í²»
±ØÔÙµ÷ÓÃIEä¯ÀÀÆ÷»òWinHelp³ÌÐòÀ´ÎªÓû§Ìṩ°ïÖúÁË¡£ÏàÐÅ´ó¼ÒÖªµÀHTML°ïÖúÎļþÓ봫ͳµÄHLP°ïÖúÎļþÏà
±ÈµÄÓÅÊÆËùÔÚ°É¡£
¡¡¡¡ÔÚÏÂÃæÀý×ÓÖУ¬ÑÝʾÁËTWebBrowser(IE4ä¯ÀÀÆ÷¿Ø¼þ)µÄNavigate·½·¨µÄʹÓ÷½·¨¡£Çë×¢Òâ³ÌÐòÖеÄ×¢ÊÍ¡£(ÏÂÃæÎª³ÌÐòµÄÖ÷ҪƬ¶Î)¡£
{¸ù¾ÝÖ÷ÌâºÍÏîÄ¿µ÷ÓðïÖúÎļþ}
procedure ShowHelp( HelpTopic,HelpItem : String );
var
TargetFrameName,PostData,Heads,Flags : OleVariant;
URL : widestring;
begin
TargetFrameName := ¡¯¡¯;{Ö¸¶¨FrameµÄ¿Õ×Ö·û´®Ê±,ÔòÔÚµ±Ç°FrameÖдò¿ª°ïÖúÎļþ}
PostData := false;{²»·¢ËÍÊý¾Ý}
Heads := ¡¯¡¯;{HeaderÐÅϢΪ¿Õ}
Flags := 0;{FlagsÉèΪ0}
URL := HelpTopic + ¡¯.HTM#¡¯+HelpItem;{°ïÖúÐÅÏ¢µÄURL}
with formHelp.webbrowser do{ÔÚ°ïÖú´°¿ÚÖеÄIEä¯ÀÀÆ÷¿Ø¼þÖÐÏÔʾ°ïÖúÐÅÏ¢}
begin
navigate(URL,Flags,TargetFrameName,PostData,Heads);{ÏÔʾ°ïÖúÐÅÏ¢}
end;
end;
£¨£²£©ÏÔʾһ¸öGIF¶¯»
¡¡¡¡¼ÙÈçÄ㻹ûÓÐÒ»¸öÊʺϵ͝»ÏÔʾ¿Ø¼þ£¬²»·ÁÊÔÓÃÒ»ÏÂÏÂÃæ·½·¨£®
procedure ShowGIF( GIFFileName : String );
var
TargetFrameName,PostData,Heads,Flags : OleVariant;
URL : widestring;
begin
TargetFrameName := ¡¯¡¯;{Ö¸¶¨FrameµÄ¿Õ×Ö·û´®Ê±,ÔòÔÚµ±Ç°FrameÖдò¿ª¶¯»Îļþ}
PostData := false;{²»·¢ËÍÊý¾Ý}
Heads := ¡¯¡¯;{HeaderÐÅϢΪ¿Õ}
Flags := 0;{FlagsÉèΪ0}
URL := GIFFileName;
with formGIF.webbrowser do{ÔÚÖ¸¶¨´°¿ÚÖеÄIEä¯ÀÀÆ÷¿Ø¼þÖÐÏÔʾ¶¯»}
begin
navigate(URL,Flags,TargetFrameName,PostData,Heads);{ÏÔʾ¶¯»Îļþ}
end;
end;
ÒÔÉϳÌÐòÔÚPWIN98+Delphi3.0ϵ÷ÊÔͨ¹ý¡£
|