หากคุณต้องการทราบว่าวัตถุนั้นเป็นประเภทพิเศษหรือไม่ ให้เขียนโค้ดต่อไปนี้:
ถ้า TypeOf obj เป็น ListItem แล้ว ...
หากคุณต้องการรับชื่อของประเภทวัตถุให้ใช้:
MsgBox "รายการนี้เป็น " & TypeName(obj)
ควบคุมการวนซ้ำแบบยาวเมื่อโปรแกรมค้างเป็นวงยาว คุณจะไม่สามารถคลิกปุ่มคำสั่งหรือแป้นใดๆ ได้ นี่เป็นเรื่องยากมากสำหรับผู้ใช้ในการควบคุม บางทีผู้ใช้อาจไม่ต้องการดำเนินการวนซ้ำและออกโดยคลิกปุ่มยกเลิกอีกต่อไป จะแก้ไขปัญหานี้อย่างไร? คำตอบคือ: ใช้คำสั่ง DoEvents! นั่นคือ รันคำสั่ง DoEvents ที่จุดเริ่มต้นของลูป เช่นโค้ดต่อไปนี้:
ติ่มซำฉันตราบเท่าที่
สำหรับ i = 1 ถึง 1000000
ทำกิจกรรม
-
ถัดไป
ที่จริงแล้ว คำสั่ง DoEvents ไม่จำเป็นต้องวางบนบรรทัดที่ 1 แต่สามารถวางไว้ที่ใดก็ได้ในลูป เมื่อทำเช่นนี้ ส่วนอื่นๆ ของโปรแกรม เช่น ปุ่มคำสั่งที่สิ้นสุดลูป จะมีโอกาสยอมรับเหตุการณ์การคลิกอีกครั้ง
ทำให้การวนซ้ำยาวเร็วขึ้นฉันพบว่าโดยทั่วไปแล้ว ควรใช้ฟังก์ชัน API GetInputState เพื่อตรวจสอบค่าของอินพุตคิวของโปรแกรม ฉันไม่รู้ว่าทำไมคำสั่ง If ทำให้โค้ดทำงานเร็วขึ้น แต่จริงๆ แล้วมันก็ใช้ได้ดี
ดังนั้นบรรทัดโค้ดต่อไปนี้จึงสามารถเป็นได้
ทำกิจกรรม
แทนที่ด้วย
ถ้า GetInputState() แล้ว DoEvents
ลองดูสิ!
ที่จริงแล้ว เหตุผลก็คือ: คำสั่ง DoEvents อนุญาตให้แอปพลิเคชันใดๆ ดำเนินกิจกรรมที่เกี่ยวข้องได้ ไม่ใช่แค่โปรแกรมของคุณเอง หลังจากเพิ่มการตัดสินของ GetInputState คุณจะยอมรับเฉพาะการดำเนินการของเหตุการณ์จากโปรแกรมของคุณเองเท่านั้น!
ทำให้การเลือกกรณีง่ายขึ้นลองดูตัวอย่างต่อไปนี้: การสร้างสตริงจากการที่ผู้ใช้คลิกชุดแท็กต่างๆ:
lbl(0) = "สวัสดี"
lbl(1) = "ฉันแสดงความคิดเห็น: ม "
lbl(2) = "มีความสุข"
lbl(3) = "เศร้า"
-
sub lbl_click (ดัชนีเป็นจำนวนเต็ม)
string$ = string$+lbl(index).caption
จากนั้น คุณต้องเขียนชุดคำสั่ง Select case เพื่อวิเคราะห์สตริงนี้...
เลือก case string$
กรณี “สวัสดี ผมแสดงความคิดเห็น : ม สุข”
ทำบางสิ่งบางอย่าง
กรณี "สวัสดี ฉันแสดงความคิดเห็น: ม"
นี่จะเป็นข้อผิดพลาด...
กรณีอื่น
ทำอย่างอื่น
สิ้นสุดการเลือก
อย่างที่คุณเห็น สิ่งนี้จะซับซ้อนมาก โดยเฉพาะอย่างยิ่งหากมีแท็กจำนวนมากและจำเป็นต้องมีการตรวจสอบความถูกต้องตามกฎหมายสำหรับการดำเนินการผสาน
เพื่อแก้ไขปัญหานี้ ฉันได้สร้างอาร์เรย์ที่มีความยาวเท่ากับจำนวนแท็ก:
arraylbl(n) เป็นจำนวนเต็ม
ค่าเริ่มต้นของอาร์เรย์คือ 1 จากนั้นค่าของแต่ละรายการจะเท่ากับค่าก่อนหน้าคูณด้วย 2 (ค่า*2) ในลักษณะนี้: 1 2 4 8 16 32 64... ด้วยวิธีนี้ การรวมกันของฉลากแต่ละคู่จะเป็นอีกหนึ่งคุณค่าอันเป็นเอกลักษณ์"
ปอนด์(0) + ปอนด์(1) = 1 + 2 = 3
ปอนด์(0) + ปอนด์(1) + ปอนด์(4) = 1 + 2 + 16 = 19
ในตอนนี้ เมื่อคลิกป้ายกำกับ ค่า lblarray() ที่เกี่ยวข้องจะถูกเพิ่มลงในตัวแปร ด้วยวิธีนี้ คุณสามารถเขียนคำสั่ง select case ได้โดยอาศัยตัวเลขสองสามตัว:
เลือกกรณี IsLegal
กรณีที่ 3
หมายเหตุ: สตริงถูกต้อง
เรียกสินค้า
กรณีที่ 19
หมายเหตุ: สตริงถูกต้อง
เรียกสินค้า
caseelse
หมายเหตุ: ไม่ถูกต้อง
โทรหาไม่ดี
สิ้นสุดการเลือก
ฮ่าฮ่า บางครั้งการแปลงตัวละครให้เป็นดิจิทัลก็อาจมีเอฟเฟกต์ที่ดีอย่างไม่คาดคิดได้!