VB 6 วิธีสร้าง Custom Collection Class เพื่อรองรับ For Each

ฉันถูกจัดให้อยู่ในโปรเจ็กต์ที่มีส่วนหน้าไคลเอนต์เขียนด้วย VB 6 อ๊าก! ฉันกำลังพยายามพัฒนาคลาสคอลเลกชันแบบกำหนดเองที่รองรับ For...Each ไวยากรณ์ เป็นไปได้ใน VB 6 หรือไม่ หรือฉันติดอยู่กับการใช้ For..Next พร้อมตัวนับเพื่อระบุดัชนี

ขอบคุณสำหรับความช่วยเหลือ!


person Chris    schedule 12.04.2011    source แหล่งที่มา
comment
ฉันจะว่ายังไงดีล่ะ ฉันต้องจ่ายค่าจำนอง ฉันหวังว่านักพัฒนา VB6 จะกลายเป็นของหายากเหมือนนักพัฒนา Cobol เหล่านั้น จากนั้นเมื่อ M$ ดึงปลั๊กบนรันไทม์ VB 6 ฉันจะไปที่นั่นเพื่อรับเงินจากการย้ายข้อมูลทั้งหมด สู่ .net...นอกเสียจากว่าฉันจะพลาดเรือลำนั้นไปแล้ว แดง!   -  person Chris    schedule 12.04.2011


คำตอบ (1)


ส่วนสำคัญคือการเพิ่มสิ่งนี้ลงในคลาสคอลเลกชันที่กำหนดเอง...

Public Function NewEnum() As IUnknown
    Set NewEnum = m_Employees.[_NewEnum]
End Function

และในแอตทริบิวต์ของขั้นตอน ให้ตั้งค่ารหัสขั้นตอนเป็น -4 ดังนี้: ป้อนคำอธิบายรูปภาพที่นี่

อ้างอิง: http://www.vb-helper.com/howto_custom_collection_with_for_each.html

person Justin Largey    schedule 12.04.2011
comment
รู้สึกผิดที่จะโหวตสิ่งที่เกี่ยวข้องกับ VB6 แต่เป็นคำตอบที่ดีมาก :-) - person Samuel Neff; 12.04.2011
comment
ฉันสนับสนุนความคิดเห็นของคุณ ตลกเกินไป! ฉันรู้ว่าคุณหมายถึงอะไร รู้สึกแย่กับคริส - person Justin Largey; 12.04.2011
comment
เนื่องจากมี #define DISPID_NEWENUM (-4) ใน colldispid.h พร้อมด้วย #define DISPID_LISTITEM 0 และ #define DISPID_LISTCOUNT (-531) แต่สิ่งเหล่านี้ไม่ได้ใช้โดยตัวดำเนินการ For Each ของ VB - person wqw; 12.04.2011