MS Access VBA คลิกแล้วเปลี่ยนภาพ และ การวนภาพ
วันนี้ ผมใช้โปรแกรม MS Access มาทำเป็นเกมสื่อการสอน ภาษาอังกฤษ โดยใช้ VBA ในเกมนี้ เป็นการจับคู่ภาพและคำภาษาอังกฤษ
ปัญหา คือ เมื่อคลิกที่ Image Control แต่ละภาพ แล้ว จะส่ง Image Control ไปยัง Procedure อย่างไร เพื่อที่จะไปกำหนด Property ของภาพ เพื่อเปลี่ยนภาพได้
โดยปกติ เราไม่สามารถ ส่งตัว Control ในลักษณะของ Variable ได้ แต่สามารถส่งชื่อของ Control เพื่อนำไปใช้ และเปลี่ยนค่า property ของ Control
ตัวอย่าง
เมื่อคลิกที่ Image1 ให้ส่งชื่อ และข้อมูลอื่นที่เกี่ยวข้อง ไปยัง doStuff()
การนำชื่อไปใช้ เราก็เอาชื่อไปหาชื่อใน Control Collection แล้วจึงทำในสิ่งที่ต้องการ ในกรณีนี้ เป็นการเอาชื่อภาพว่า ภาพของ Control ที่กำลังถูกคลิก คือภาพอะไร
ตัวอย่าง
อีกประเด็นหนึ่งคือ ในเกมนี้ จะต้องมีการตรวจสอบว่า มีภาพใดที่หาคู่เจอแล้ว ภาพใดที่ยังหาไม่เจอ ดังนั้น จึงต้องมีการวน และตรวจสอบ Image Control ทุกตัว แต่ ในฟอร์ม จะมี Control หลายตัว เช่น ปุ่ม Label เป็นต้น เราจะวนเฉพาะ Image Control อย่างไร
คำตอบคือ ก็วนไปทุก Control นั่นแหละ แต่ถ้าพบว่า ไม่ใช่ Image Control เราก็ผ่านไป ไม่ต้องทำอะไร แต่ถ้าเป็น Image Control เราก็ทำในสิ่งที่ต้องการ
ตัวอย่าง
ความคิดเห็น
แสดงความคิดเห็น