ในส่วนนี้เรามาฝึกกันดูครับ ขั้นแรกให้สร้างวัตถุ COM จากนั้นใช้งาน และสุดท้ายให้คิดถึงการปรับปรุง
ขั้นแรกให้ทำสองขั้นตอนต่อไปนี้:
เรียกใช้ Visual Basic เลือกประเภทโครงการ "StandardEXE" เนื่องจากวัตถุ COM ขึ้นอยู่กับคลาส คลาสจึงเป็นแพ็คเกจ เช่นเดียวกับโค้ดในโมดูล ดังนั้น:
เลือก "Project"->"AddClassModule"; เมื่อกล่องโต้ตอบที่เกี่ยวข้องปรากฏขึ้น เลือก "'ClassModule" จากนั้นคลิกปุ่ม "เปิด"
ด้วยวิธีนี้ แบบฟอร์มจะแสดงบนเดสก์ท็อป เช่นเดียวกับ Class1 ที่มีอยู่ใน Project1
จากนั้นเปลี่ยนชื่อคลาสของคลาสว่าง:
ในหน้าต่างคุณสมบัติของคลาส เปลี่ยนคุณสมบัติชื่อของคลาสเป็น CDog
ควรสังเกตว่าเพื่อความแตกต่าง ชื่ออ็อบเจ็กต์แต่ละรายการจะมีคำนำหน้าที่สอดคล้องกัน ตัวอย่างเช่น ออบเจ็กต์กล่องข้อความนำหน้าด้วย "txt" แบบฟอร์มนำหน้าด้วย "frm" และคลาสสามารถนำหน้าด้วยตัวพิมพ์ใหญ่ ตัวอักษร "C" หรืออักษรตัวพิมพ์เล็ก "cls" "แต่อันแรกใช้ที่นี่
มาเพิ่มโค้ดเพื่อทดสอบกัน:
ในส่วนการประกาศทั่วไปของคลาส CDog เพิ่มการประกาศของตัวแปร:
จากนั้นเปิด Form1;
เพิ่มปุ่มคำสั่งลงในแบบฟอร์ม
เปิดหน้าต่างรหัสและเพิ่มรหัสต่อไปนี้ลงในปุ่มคำสั่ง:
มาอธิบายความหมายของโค้ดด้านบนกัน:
บรรทัดคำสั่งนี้ใช้เพื่อแจ้ง Visual Basic เพื่อตั้งค่าช่องว่างบิตสำหรับวัตถุ CDog อย่างไรก็ตาม วัตถุไม่สามารถใช้งานได้ในขณะนี้ และต้องรอจนกว่าคำสั่งถัดไป:
ใช้เพื่อสร้างอินสแตนซ์ของ CDog ซึ่งหมายความว่าเทมเพลต MyDog ที่ว่างเปล่าก่อนหน้านี้กลายเป็นวัตถุ CDog ที่สามารถใช้งานได้แล้ว
บรรทัดแรกของโค้ดด้านบนใช้เพื่อตั้งค่าตัวแปร Name ของ MyDog และบรรทัดคำสั่งที่สองใช้เพื่อแสดงเนื้อหาของตัวแปรในกล่องโต้ตอบข้อความ ในที่สุด:
ใช้เพื่อล้างวัตถุ MyDog
กด F5 เพื่อรันและทดสอบ
แล้วไงล่ะ? แต่ในขณะเดียวกันเราก็อดไม่ได้ที่จะถามว่า Standard Module กับ Class Module ต่างกันอย่างไร? ลองดูตัวอย่างต่อไปนี้อีกครั้ง:
เปลี่ยนรหัสปุ่มคำสั่งเป็น:
แตกต่างจากโค้ดก่อนหน้านี้ โค้ดที่นี่กำหนดอ็อบเจ็กต์ MyDog และ MyDog2 สองอ็อบเจ็กต์ ซึ่งเป็นอ็อบเจ็กต์อิสระสองตัวที่ยึดตาม CDog
กด F5 เพื่อรันและทดสอบ
ผลลัพธ์คืออะไร? กล่องโต้ตอบสองกล่องปรากฏขึ้นในเวลานี้หรือไม่ คนหนึ่งพูดว่า "BillyMoore" และอีกคนพูดว่า "SadieMoore"
ยกเว้นชื่อ แต่ละออบเจ็กต์ที่กำหนดไว้ข้างต้นไม่มีแอตทริบิวต์จริง ดังนั้นกระบวนการต่อไปนี้จะถูกเพิ่ม:
เปิด Class1 ก่อนหน้า
ประกาศตัวแปรสาธารณะต่อไปนี้:
เปิด Form1 ก่อนหน้า
เปลี่ยนรหัสปุ่มคำสั่งเป็น:
รหัสจะคล้ายกับรหัสก่อนหน้า ยกเว้นว่ามีการใช้ตัวแปร Age ที่นี่
กด F5 เพื่อรันและทดสอบ
กล่องโต้ตอบข้อความสองกล่องจะปรากฏขึ้นเพื่อแสดงเนื้อหาของชื่อและอายุ
ตอนนี้ลองตั้งค่าอายุของวัตถุชิ้นใดชิ้นหนึ่งเป็น 1,000 หรือ 30,000 ดูว่ามันจะออกมาเป็นอย่างไร? โปรแกรมยังคงทำงานตามปกติเนื่องจากค่าสูงสุดของตัวแปรจำนวนเต็มที่กำหนดสามารถเข้าถึง 32,767 ได้ แต่สุนัขที่แท้จริง (Dog) มีอายุไม่เกิน 30,000 ปี
แล้วสถานการณ์นี้ควรรับมืออย่างไร?
-