เมื่อใช้การควบคุมของบริษัทอื่นในการเขียนโปรแกรม VB โปรแกรมจะต้องสามารถค้นหาการควบคุมของบริษัทอื่นที่ใช้ในไดเร็กทอรีระบบหรือไดเร็กทอรีโปรแกรมได้ โดยปกติจะมีสองวิธี: วิธีหนึ่งคือทำให้การควบคุมและโปรแกรมเป็นแพ็คเกจที่บีบอัดและแจกจ่าย ข้อเสียคืออาจทำให้ไฟล์ควบคุมสูญหายในระหว่างกระบวนการเผยแพร่โปรแกรม ประการที่สองคือการสร้างโปรแกรมการติดตั้ง ข้อเสียคือ กระบวนการผลิตยุ่งยาก บทความนี้อธิบายวิธีการบันทึกการควบคุมของบริษัทอื่นในโปรแกรมในรูปแบบของไฟล์ทรัพยากรแบบกำหนดเอง หลังจากที่โปรแกรมทำงานและก่อนที่จะใช้ตัวควบคุม ตัวควบคุมที่ใช้จะถูกสร้างขึ้นในไดเร็กทอรีของโปรแกรมเพื่อให้การเชลล์ของตัวควบคุมจากปฏิบัติการเสร็จสมบูรณ์ ไฟล์.
ขั้นตอนเฉพาะมีดังนี้:
ขั้นตอนที่ 1: คัดลอกตัวควบคุมที่จะใช้ไปยังไดเร็กทอรีโครงการปัจจุบัน คลิกขวาที่ตัวควบคุม เลือก คุณสมบัติ และจดบันทึกขนาดไฟล์ โปรดทราบว่าคุณควรจดตัวเลขที่ระบุเป็นไบต์ ไม่ใช่จำนวน K เพื่อวัตถุประสงค์ในการเขียนโปรแกรม
ขั้นตอนที่ 2: อ้างอิงและใช้การควบคุมตามปกติ
ขั้นตอนที่ 3: สร้างไฟล์ทรัพยากรใหม่และเพิ่มลงในโปรเจ็กต์ เพิ่มการควบคุมของบุคคลที่สามที่ใช้เป็นทรัพยากรที่กำหนดเอง (กำหนดเอง) ในตัวแก้ไขไฟล์ทรัพยากร ใช้ค่าเริ่มต้น 101 สำหรับหมายเลขทรัพยากร หากใช้การควบคุมหลายรายการ ให้เพิ่มลงในรายการทรัพยากร 101, 102... ในไฟล์ทรัพยากรตามลำดับ และต้องแก้ไขโค้ดการเชลล์ตามนั้นด้วย
ขั้นตอนที่ 4: เขียนโค้ดเชลล์ควบคุมเพื่ออ่านข้อมูลของไฟล์ทรัพยากรและสร้างการควบคุมในไดเร็กทอรีปัจจุบันของโปรแกรม
รหัสมีดังนี้:
ส่วนตัว Const OCXSIZE = 57344 'ขนาดของตัวควบคุมที่จะสร้างคือ 57344Byte และชื่อคือ CoolToolBar.ocx
หลักย่อย()
Dim Ocx() As Byte 'OCX เป็นอาร์เรย์ประเภท Btye
Dim Counter ตราบเท่าที่
Ocx = LoadResData(101, CUSTOM) 'อ่านทรัพยากรหมายเลข 101 ในทรัพยากรที่กำหนดเองลงในอาร์เรย์ OCX
'โปรดทราบว่ามีข้อผิดพลาดในคำแนะนำในการโหลดทรัพยากรที่กำหนดเองในวิธีใช้ของ Microsoft ทรัพยากรที่กำหนดเองถูกระบุเป็น CUSTOM แทนที่จะเป็นหมายเลข 10 ที่กล่าวถึงในวิธีใช้
ถ้า Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) จากนั้น 'อ่านพาธของโปรแกรม พิจารณาว่าเป็นไดเร็กทอรีรากหรือไม่ และประมวลผลแยกกัน
'โปรแกรมอยู่ในไดเร็กทอรีราก'
ถ้า Dir(App.Path & CoolToolBar.ocx) = ดังนั้น 'มีการควบคุมในเส้นทางของโปรแกรมหรือไม่ ถ้าไม่ การควบคุมจะถูกสร้างขึ้น
'เขียน (สร้าง) ตัวควบคุม (CoolToolBar.ocx) ในโหมดไบนารีไปยังไดเร็กทอรีที่มีโปรแกรมหลักอยู่
เปิด App.Path & CoolToolBar.ocx สำหรับ Binary เป็น #1
สำหรับ Counter = 0 ถึง OCXSIZE - 1 'โปรดทราบว่าเนื่องจากมันเริ่มต้นจาก 0 Byte ขนาดไฟล์ - 1Byte จึงเป็นค่าสุดท้าย
ใส่ #1, , Ocx(ตัวนับ)
เคาน์เตอร์ถัดไป
ปิด #1
จบถ้า
อื่น
'โปรแกรมไม่อยู่ในไดเร็กทอรีราก'
ถ้า Dir(App.Path & /CoolToolBar.ocx) = ดังนั้น 'มีการควบคุมในเส้นทางของโปรแกรมหรือไม่ ถ้าไม่ การควบคุมจะถูกสร้างขึ้น
'เขียน (สร้าง) ตัวควบคุม (CoolToolBar.ocx) ในโหมดไบนารีไปยังไดเร็กทอรีที่มีโปรแกรมหลักอยู่
เปิด App.Path & /CoolToolBar.ocx สำหรับ Binary เป็น #1
สำหรับ Counter = 0 ถึง OCXSIZE - 1 'โปรดทราบว่าเนื่องจากมันเริ่มต้นจาก 0 Byte ขนาดไฟล์ - 1Byte จึงเป็นค่าสุดท้าย
ใส่ #1, , Ocx(ตัวนับ)
เคาน์เตอร์ถัดไป
ปิด #1
จบถ้า
จบถ้า
Form1.Visible = True 'ส่วนควบคุมที่ใช้ในโปรแกรมหลักได้ถูกสร้างขึ้น แสดงแบบฟอร์มหลัก และเข้าสู่โปรแกรมหลัก
จบหมวดย่อย
หมายเหตุ: เพิ่มโค้ดด้านบนให้กับโปรเจ็กต์เป็นโมดูล และเลือกออบเจ็กต์เริ่มต้นเป็น Sub Main ในการตั้งค่าคุณสมบัติโปรเจ็กต์-โปรเจ็กต์ ซึ่งเป็นโค้ดเชลล์ด้านบน จากนั้นคอมไพล์และสร้างไฟล์ EXE คัดลอกไฟล์ EXE ไปยังคอมพิวเตอร์เครื่องอื่นที่ไม่ได้ติดตั้งตัวควบคุมไว้ และเรียกใช้เพื่อดูว่าสามารถพกพาการควบคุมได้หรือไม่