---- บางทีคุณอาจยังจำตัวอย่างเบราว์เซอร์ในโปรแกรมตัวอย่างของ Delphi ได้ ในตัวอย่างนี้ เบราว์เซอร์ถูกสร้างขึ้นโดยใช้คุณสมบัติและวิธีการของการควบคุม THttp ตัวอย่างนี้ดีมากสำหรับการทำความเข้าใจวิธีใช้ตัวควบคุม THttp แต่น้อยคนนักที่จะใช้เป็นเบราว์เซอร์จริง เหตุผลง่าย ๆ ก็คือ ฟังก์ชันมีจำกัดเกินไป ไม่รองรับ Frame ไม่รองรับภาษาสคริปต์ ไม่สามารถดูไฟล์ HTML เป็นไฟล์ในเครื่องได้ เป็นต้น ผู้ใช้ส่วนใหญ่ใช้ IE หรือ Navigator เราเป็นโปรแกรมเมอร์ก็ยินดีใช้เบราว์เซอร์สำเร็จรูปเช่นกัน เมื่อเราจำเป็นต้องใช้เบราว์เซอร์ เราก็เรียกเบราว์เซอร์ภายนอกในโปรแกรมผ่านวิธีการต่างๆ เช่น WinExec หรือ CreatePRocess เพื่อให้ผู้ใช้ใช้งาน วิธีการนี้ไม่มีปัญหามากนัก แต่ก็ทำให้ฉันไม่อยากยอมแพ้ในการควบคุมโปรแกรมให้กับโปรแกรมภายนอกอื่นๆ เสมอ มันทำให้ฉันลำบากมากเสมอ โดยเฉพาะอย่างยิ่งเมื่อระดับการใช้งานคอมพิวเตอร์ของผู้ใช้ซอฟต์แวร์แอพพลิเคชั่นไม่มากนัก สูง. คงจะดีไม่น้อยหากมีการควบคุมเบราว์เซอร์ที่อนุญาตให้คุณฝังเบราว์เซอร์ลงในโปรแกรมของคุณเองได้
---- หากสภาพแวดล้อมภายนอกของซอฟต์แวร์ของคุณคือ WIN95+IE หรือ WIN98 (อัตราการใช้งานของซอฟต์แวร์ดังกล่าวยังคงสูงมาก) แสดงว่าอาจมีการควบคุมเบราว์เซอร์ IE ในระบบอยู่แล้วที่สามารถใช้งานได้นาน คุณไม่ได้สังเกตเวลา อย่าเปลืองทรัพยากร ใช้มัน เมื่อ IE 3.X หรือ IE 4. จะพบว่าตัวควบคุม IE ได้รับการลงทะเบียนในระบบเป็นตัวควบคุม ActiveX เพื่อให้เราสามารถใช้ตัวควบคุมใน Delphi ได้
---- เนื่องจากการควบคุมเบราว์เซอร์ IE จำเป็นต้องมีฟังก์ชันการแสดงผลก่อนจึงจะสามารถใช้งานได้ คุณจึงไม่สามารถใช้ CreateOleObject เพื่อรับอินสแตนซ์ในโปรแกรมและใช้คุณสมบัติและวิธีการโดยตรงได้ มิฉะนั้น โปรแกรมจะทำให้เกิดข้อผิดพลาดขณะทำงาน ในกรณีนี้ คุณต้องใช้ฟังก์ชันที่มีให้ในฟังก์ชัน "นำเข้า ActiveX Control" ของ Delphi วิธีการดำเนินการจะอธิบายไว้ด้านล่าง
---- ในเมนู "ส่วนประกอบ" ให้เรียกใช้ฟังก์ชัน "นำเข้า ActiveX Control" เลือก "Microsoft Internet Controls (เวอร์ชัน 1.1)" ในรายการ Registered Controls และเส้นทางที่แสดงในแถบพร้อมท์ด้านล่างคือ C:PWin98SystemSHDOCVW .DLL ตัวควบคุมสามตัวที่สามารถลงทะเบียนได้แสดงอยู่ในชื่อคลาส (รายการประเภท): TWebBrowser_V1, TWebBrowser และ TShellFolderViewOC คือการควบคุมเบราว์เซอร์ IE3, การควบคุมเบราว์เซอร์ IE4 และการควบคุม "Microsoft Shell Folder View Router" ตามลำดับ คลิกติดตั้งเพื่อติดตั้ง หลังจากการติดตั้งเสร็จสิ้น จะมีการเพิ่มตัวควบคุม 3 ตัวในแถบควบคุม "ActiveX" ได้แก่ TWebBrowser_V1, TWebBrowser และ TShellFolderViewOC; ในไดเร็กทอรี Imports ของ Delphi ไฟล์ SHDocVw_TLB.PAS จะถูกสร้างขึ้น ซึ่งมีรายละเอียดบรรจุภัณฑ์ของตัวควบคุมทั้งสามนี้ แน่นอนว่ามีคำอธิบายคุณสมบัติและวิธีการของตัวควบคุม ซึ่งสามารถใช้เป็นข้อมูลอ้างอิงเพื่อให้เราใช้ตัวควบคุมได้
-
ยกตัวอย่าง TWebBrowser (การควบคุมเบราว์เซอร์ IE4) คุณสมบัติและวิธีการทั่วไปของ TWebBrowser ส่วนใหญ่ประกอบด้วย: GoBack: วิธีการ กลับไปที่หน้าก่อนหน้า GoForward: วิธีการเลื่อนไปหน้าถัดไป GoHome: วิธีการเรียกโฮมเพจเริ่มต้นซึ่งตั้งค่าไว้ในตัวเลือก IE GoSearch: วิธีการเรียกหน้าการค้นหาเริ่มต้นซึ่งตั้งค่าไว้ในตัวเลือก IE นำทาง (const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): วิธีการ เรียกเพจที่ระบุ พารามิเตอร์เฉพาะมีดังนี้: URL: URL ของเพจที่ระบุ ธง: ประเภท Word ฟังก์ชั่นยังไม่ชัดเจนสามารถตั้งค่าเป็น 0 ได้ TargetFrameName: WideString ให้เปิดเฟรมที่เพจนั้นตั้งอยู่ หากเป็นสตริงว่าง เพจนั้นจะถูกเปิดในเฟรมปัจจุบัน ถ้ามีเฟรมที่ระบุโดย TargetFrameName เพจนั้นจะถูกเปิดในเฟรมนั้น ไม่มี TargetFrameName หน้าต่างใหม่จะเปิดขึ้น ซึ่งเทียบเท่ากับการเรียกเบราว์เซอร์ IE ภายนอก PostData: boolean ว่าจะอนุญาตให้ส่งข้อมูลหรือไม่ ส่วนหัว: WideString ซึ่งเป็นข้อมูลส่วนหัวของคำขอ URL ที่จะส่ง รีเฟรช: วิธีการรีเฟรชหน้าปัจจุบัน หยุด: วิธีการหยุดการโทรหรือเปิดหน้าปัจจุบัน LocationName: คุณสมบัติ (WideString) ชื่อของที่ตั้งปัจจุบัน LocationURL: คุณสมบัติ (WideString) URL ของตำแหน่งปัจจุบัน ไม่ว่าง: คุณลักษณะ (บูลีน) ไม่ว่าจะไม่ว่างก็ตาม มองเห็นได้: คุณสมบัติ (บูลีน) ไม่ว่าจะมองเห็นหน้าต่างเบราว์เซอร์หรือไม่ (คุณสมบัติต่อไปนี้เป็นคุณสมบัติใหม่ใน TWebBrowser และไม่มีใน TWebBrowser_V1 และจำเป็นต้องมีการสำรวจฟังก์ชั่น) StatusBar: คุณสมบัติ (บูลีน) ไม่ว่าจะแสดงแถบสถานะหรือไม่ StatusText: คุณสมบัติ (WideString) เนื้อหาแถบสถานะ แถบเครื่องมือ: คุณสมบัติ (SYSINT) เนื้อหาในแถบเครื่องมือ MenuBar: คุณสมบัติ (บูลีน) ว่าจะแสดงแถบเมนูหรือไม่ FullScreen: คุณสมบัติ (บูลีน) ว่าจะแสดงผลแบบเต็มหน้าจอหรือไม่ ออฟไลน์: คุณสมบัติ (บูลีน) ไม่ว่าจะเรียกดูแบบออฟไลน์หรือไม่ AddressBar: คุณสมบัติ (บูลีน) ว่าจะแสดงแถบที่อยู่หรือไม่ เหตุการณ์ทั่วไปของ TWebBrowser ส่วนใหญ่ได้แก่: OnStatusTextChange = Procedure(Sender: TObject; const Text: WideString) ของ object;
---- เกิดขึ้นเมื่อข้อมูลแจ้งแถบสถานะเปลี่ยนแปลง ข้อความพารามิเตอร์คือข้อมูลแจ้งแถบสถานะปัจจุบัน เราสามารถอัปเดตข้อมูลแจ้งแถบสถานะของเราเองหรือจัดการธุรกรรมอื่น ๆ ตามข้อมูลนี้
----OnProgressChange = ขั้นตอน (ผู้ส่ง: TObject; ความคืบหน้า, ProgressMax: จำนวนเต็ม) ของวัตถุ;
---- เกิดขึ้นเมื่อความคืบหน้าของการเปิดเพจเปลี่ยนแปลง พารามิเตอร์ Progress คือความคืบหน้าปัจจุบัน และ ProgressMax คือความคืบหน้าทั้งหมด เราสามารถอัปเดตข้อมูลแจ้งแถบสถานะของเราเองหรือจัดการธุรกรรมอื่น ๆ ตามพารามิเตอร์ทั้งสองนี้
----OnCommandStateChange = ขั้นตอน (ผู้ส่ง: TObject; คำสั่ง: จำนวนเต็ม; เปิดใช้งาน: WordBool) ของวัตถุ;
---- เกิดขึ้นเมื่อคำสั่งใหม่ถูกดำเนินการ Command คือตัวระบุคำสั่ง และ Enable คืออนุญาตให้ดำเนินการคำสั่งหรือไม่ OnTitleChange = ขั้นตอน (ผู้ส่ง: TObject; const ข้อความ: WideString) ของวัตถุ;
---- เกิดขึ้นเมื่อชื่อเรื่องของหน้าเปลี่ยนแปลง Text คือชื่อปัจจุบัน
----OnPropertyChange = ขั้นตอน (ผู้ส่ง: TObject; const Property_: WideString) ของวัตถุ;
---- เกิดขึ้นเมื่อคุณสมบัติของเพจเปลี่ยนไป Property_ เป็นชื่อคุณสมบัติ OnDownloadComplete: TNotifyEvent
---- เกิดขึ้นหลังจากหน้าดาวน์โหลดเสร็จสิ้น
----OnDownloadBegin: TNotifyEvent
---- เกิดขึ้นก่อนเริ่มหน้าดาวน์โหลด
---- (1) สร้างระบบช่วยเหลือของคุณเอง
---- เราใช้การควบคุมเบราว์เซอร์ IE เพื่อสร้างระบบช่วยเหลือสำหรับผู้ใช้ ไฟล์วิธีใช้ประกอบด้วยไฟล์ HTML หลายไฟล์ หัวข้อหนึ่งสอดคล้องกับไฟล์ HTML หนึ่งไฟล์ (Topic.HTM) และรายการในแต่ละหัวข้อสอดคล้องกับ ไฟล์ HTML แท็ก (#Item) ด้วยวิธีนี้ ในระบบของเรา เราไม่จำเป็นต้องเรียกใช้เบราว์เซอร์ IE หรือโปรแกรม WinHelp เพื่อให้ความช่วยเหลือแก่ผู้ใช้อีกต่อไป ฉันเชื่อว่าคุณทุกคนทราบถึงข้อดีของไฟล์วิธีใช้ HTML เมื่อเปรียบเทียบกับไฟล์วิธีใช้ HLP แบบเดิม
---- ในตัวอย่างต่อไปนี้ จะสาธิตการใช้เมธอด Navigate ของ TWebBrowser (การควบคุมเบราว์เซอร์ IE4) โปรดใส่ใจกับความคิดเห็นในโปรแกรม (ด้านล่างนี้คือตัวอย่างหลักของโปรแกรม)
{การเรียกไฟล์วิธีใช้ตามหัวข้อและโครงการ}ขั้นตอน ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{เมื่อระบุสตริงว่างของ เฟรม จากนั้นเปิดไฟล์วิธีใช้ในเฟรมปัจจุบัน} PostData := false;{Do not send data} Heads := ';{Header information is Empty} Flags := 0;{Flags is set to 0} URL := HelpTopic + '.HTM#'+HelpItem;{URL of help information} with formHelp.webbrowser do{Display help information in the IE browser control in the help window} เริ่มนำทาง( URL, ธง, TargetFrameName, PostData, Heads); {แสดงข้อมูลความช่วยเหลือ} end; end;
---- (2) แสดงภาพเคลื่อนไหว GIF
---- หากคุณไม่มีตัวควบคุมการแสดงภาพเคลื่อนไหวที่เหมาะสม คุณอาจลองใช้วิธีต่อไปนี้เช่นกัน
ขั้นตอน ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring;begin TargetFrameName := ';{เมื่อระบุสตริงว่างของ Frame ไฟล์ภาพเคลื่อนไหวจะถูกเปิดใน Frame ปัจจุบัน} PostData := false;{Do not send data} Heads := ';{Header information is Empty} ธง := 0;{Flags is set to 0} URL := GIFFileName; formGIF.webbrowser ทำ{แสดงภาพเคลื่อนไหวในการควบคุมเบราว์เซอร์ IE ในหน้าต่างที่ระบุ} เริ่มต้นการนำทาง (URL, Flags, TargetFrameName, PostData, Heads); {แสดงไฟล์ภาพเคลื่อนไหว} end; end;
---- โปรแกรมข้างต้นได้รับการดีบั๊กภายใต้ PWIN98+Delphi3.0