----VisualBasic5.0 คือสภาพแวดล้อมการพัฒนาแบบผสานรวมที่ทรงพลัง ซึ่งสามารถตรวจสอบข้อผิดพลาดทางไวยากรณ์ได้โดยอัตโนมัติ และพร้อมท์โปรแกรมสร้างโค้ดสำหรับรูปแบบไวยากรณ์ ฟังก์ชันเหล่านี้ปรับปรุงประสิทธิภาพการเขียนโค้ดอย่างมาก อย่างไรก็ตาม ในฐานะเครื่องมือการพัฒนาอย่างรวดเร็ว คุณลักษณะของเครื่องมือยังถูกเน้นย้ำในเทคโนโลยี Add-In อีกด้วย เมื่อใช้มัน เราสามารถเสริมความแข็งแกร่งและปรับแต่งสภาพแวดล้อมการพัฒนา VB ได้: เราสามารถเพิ่มโมดูลให้กับ PProjects ทั้งหมดได้โดยอัตโนมัติ เราสามารถแทนที่โมดูลในแต่ละโมดูลด้วยโมดูลอื่น เราสามารถค้นหาโค้ดบางส่วนในโปรแกรมและเพิ่มเข้าไปได้ มันมาแทนที่มัน ในทางทฤษฎี เรายังสามารถใช้เทคโนโลยีนี้เพื่อสร้างตัวสร้างโค้ดอัตโนมัติได้อีกด้วย
---- สาระสำคัญของเทคโนโลยี Add-In คือสภาพแวดล้อมการเขียนโปรแกรม VB นั้นถูกเปิดเผยต่อผู้ใช้ในรูปแบบออบเจ็กต์ เราสามารถใช้โมดูลหรือชิ้นส่วนของโค้ดเป็นออบเจ็กต์การดำเนินการเพื่อแก้ไขและปรับให้เหมาะสม ด้านล่างนี้ เราจะแนะนำการใช้เทคโนโลยี Add-In ผ่านตัวอย่าง
----ตัวอย่างเช่น คุณต้องการใส่โค้ดส่วนนี้ในโปรแกรมของคุณ:
dimnIndexasinteger
nIndex=cStr(vsFlex.ข้อความ)
แทนที่ด้วย:
dimsIndexasstring
sIndex=สเปรด.ข้อความ
----ซอฟต์แวร์แก้ไขส่วนใหญ่ รวมถึง Word ไม่มีฟังก์ชันการค้นหาและแทนที่หลายบรรทัด และโปรแกรมแก้ไข VB5.0 ก็ไม่มีข้อยกเว้น
----1. เปิด VB แล้วเลือก "AddIn" เมื่อเลือกประเภทโครงการ ด้วยวิธีนี้ เราจึงเปิดโปรเจ็กต์ชื่อ MyAddin เปลี่ยนชื่อโครงการเป็นสิ่งที่คุณต้องการ เช่น "ทดสอบ"
----2. เปิด Addin.bas แล้วคุณจะพบกับรูทีนย่อยของ AddToIni:
SubAddToINI()
DimErrCodeAsLong
ErrCode=WritePrivateProfileString("Add-Ins32", "Myaddin.Connect", "0", "vbaddin.ini")
สิ้นสุดย่อย
----ในไดเร็กทอรี Windows จะมีไฟล์ชื่อ vbaddin.ini แต่ละครั้งที่ VB เริ่มทำงาน จะกำหนดว่าโปรแกรม AddIn ใดที่พร้อมใช้งานตามการตั้งค่าของไฟล์นี้ จริงๆ แล้วฟังก์ชันของ AddToIni คือการลงทะเบียนโปรแกรมปัจจุบันไปที่ vbaddin.ini แก้ไข "Myaddin.Connect" เป็น "Test.Connect" เพื่อให้สอดคล้องกับชื่อโครงการปัจจุบัน
----3. ดำเนินการ AddToIni ในหน้าต่าง Immediate เพื่อทำการลงทะเบียน Addin ปัจจุบันให้เสร็จสิ้น
----4. เปิด Connect.cls ในพื้นที่ประกาศตัวแปร: ImplementsIDTExtensibility
----IDTExtensibility คืออินเทอร์เฟซสำหรับการโต้ตอบระหว่างโปรแกรม VB และ AddIn เมื่อ VB เลือก AddIdManager ในเมนู Addin และอ้างอิงถึงโปรแกรม Addin ปัจจุบัน "Test" เหตุการณ์ OnConnect จะถูกทริกเกอร์และโปรแกรม IDTExtensibility_OnConnection() จะถูกดำเนินการ ตั้งค่าเบรกพอยต์ในบรรทัดต่อไปนี้:
----Debug.PrintVBInst.FullName
----รันโปรแกรมปัจจุบัน
----5. เริ่มรูทีน VB อื่นเพื่อสร้าง StandardEXE ชื่อ Project1 เลือก AddinManager จากเมนู Addin เราได้รับรายการ เราเลือก MyAddin แล้วกลับมา ขณะนี้การทดสอบเริ่มต้นและหยุดที่
----Debug.PrintVBInst.FullName
----โปรดทราบว่า VBInstance (VBInst) หมายถึงสภาพแวดล้อมการพัฒนาแบบรวมของ VB (VBEObject) โดยใช้ Addin เราสามารถใช้เป็นวัตถุได้ VBEObject มี VBProjects แต่ละ VBProject มี Vbcomponents แต่ละ VBComponent สอดคล้องกับโมดูล แต่ละฟอร์ม คลาส หรือโมดูล
----6 เราดำเนินการในหน้าต่างทดสอบทันที:
- VBInstance.ActiveProject.Name
----จะได้ชื่อ Project1
- VBInstance.ActiveProject.VBComponent(0).ชื่อ
----คุณสามารถรับชื่อของโมดูลแรก Form1 ของ Project1
----จนถึงตอนนี้ เราได้อธิบายโดยพื้นฐานแล้วความหมายแฝงทางเทคนิคของ AddIn ที่เหลือก็เข้าใจง่าย
----7. ใน AddinManager ของ Project1 ให้ลบ MyAddin
----8. แก้ไขการทดสอบอีกครั้ง เปิด frmAddin และเปลี่ยนแปลง
PrivateSubOKButton_คลิก()
MsgBoxVBInstance.FullName
สิ้นสุดย่อย
เปลี่ยนเป็น:
PrivateSubOKButton_คลิก()
CallmReplace()
สิ้นสุดย่อย
PrivateSubmReplace()
โครงการ DimoProAsVB
DimoComAsVBComponent
DimbFindAsBoolean
DimnFindLineasinteger
DimnfindColasinteger
Screen.MousePointer=vbนาฬิกาทราย
OnErrorGoToerrmReplace
SetoPro=VBInstance.ActiveVBProject
'ตรวจสอบว่าโปรแกรมได้รับการบันทึกหรือไม่
IfoPro.FileName=""ThenMsgBox"กรุณาบันทึกก่อน!";ExitSub
ForEachoComInoPro.VBComponents
bค้นหา=จริง
ทำในขณะที่ค้นหา
'ค้นหาส่วนของรหัสที่จะแทนที่
bFind=oCom.CodeModule.Find("dimnIndexasinteger",nFindLine,nfindCol,oCom.CodeModule.CountOfLines,500,จริง
ถ้าbค้นหาแล้ว
IfoCom.CodeModule.Lines(nFindLine 1,1)="nIndex=cStr(vsFlex.Text)"
'แทนที่หลังจากการค้นหา
oCom.CodeModule.ReplaceLine
nFindLine, "dimsIndexasstring"
oCom.CodeModule.ReplaceLine
nFindLine 1,"sIndex=Spread.text"
อื่น
bFind=เท็จ
สิ้นสุดถ้า
สิ้นสุดถ้า
วนซ้ำ
เน็กซ์โตคอม
Screen.MousePointer=vbDefault
ทางออกย่อย
errmแทนที่:
บี๊บ
Screen.MousePointer=vbDefault
MsgBox "ข้อผิดพลาด!"
สิ้นสุดย่อย
----9. ให้ Test เข้าสู่สถานะกำลังทำงาน
----10. หากเราทำซ้ำขั้นตอนที่ 5 จะมีรายการเพิ่มเติม "MyAddin" ในเมนู Addin ของ Project1 เราเพิ่มโค้ดบางส่วนที่จะแทนที่ใน Project1 จากนั้นดำเนินการ MyAddin และงานทดแทนจะเสร็จสมบูรณ์
----11. เพื่อนบางคนไม่อยากให้คำว่า "MyAddin" ปรากฏในเมนู Addin แต่เป็นโลโก้ที่มีความหมายชัดเจนกว่า เช่น "แทนที่" เปลี่ยน ConnectClass ของการทดสอบ ---- IDTExtensibility_OnConnection() เป็น
SetmcbMenuCommandBar=AddToAddInCommandBar("MyAddIn")
เปลี่ยนเป็น SetmcbMenuCommandBar=AddToAddInCommandBar("replace")
หากคุณต้องการเปลี่ยน MyAddin ใน AddinManager เป็น
"แทนที่" คุณสามารถเปิด Connect.cls ด้วย notepad และเปลี่ยน: AttributeVB_Description="MyAdd-In"
เปลี่ยนเป็น: AttributeVB_Description="แทนที่"
----คำแนะนำข้างต้นเป็นเพียงการประยุกต์ใช้เทคโนโลยี AddIn อย่างง่าย หลังจากเข้าใจกลไกของมันแล้ว คุณสามารถสร้างเครื่องมือของคุณเองได้ตามความต้องการ สำหรับนักพัฒนาซอฟต์แวร์แอพพลิเคชั่นมืออาชีพบางราย ยิ่งพวกเขาสะสมเครื่องมือ AddIn มากเท่าใด ประสิทธิภาพการเขียนโค้ดก็จะยิ่งมากขึ้นเท่านั้น -