----VisualBasic5.0 عبارة عن بيئة تطوير متكاملة وقوية يمكنها التحقق تلقائيًا من الأخطاء النحوية ومطالبة المبرمجين بالتنسيقات النحوية. تعمل هذه الوظائف على تحسين كفاءة الترميز بشكل كبير. ومع ذلك، باعتبارها أداة تطوير سريعة، يتم أيضًا تسليط الضوء على خصائصها في تقنية الوظائف الإضافية. باستخدامه، يمكننا تعزيز وتخصيص بيئة تطوير VB: يمكننا تلقائيًا إضافة وحدة نمطية إلى جميع مشاريع PProject؛ ويمكننا استبدال وحدة نمطية في كل وحدة نمطية بوحدة نمطية أخرى، ويمكننا العثور على جزء معين من التعليمات البرمجية في البرنامج وإضافته إليه ومن الناحية النظرية، يمكننا حتى استخدام هذه التكنولوجيا لإنشاء مولد أكواد تلقائي.
---- جوهر تقنية الوظائف الإضافية هو أن بيئة برمجة VB نفسها مكشوفة للمستخدمين كنموذج كائن، ويمكننا استخدام وحدة نمطية أو جزء من التعليمات البرمجية ككائن تشغيل لتعديله وتحسينه. فيما يلي، نقدم استخدام تقنية الوظائف الإضافية من خلال مثال.
----على سبيل المثال، تريد تضمين هذا الجزء من التعليمات البرمجية في برنامجك:
dimnIndexasinteger
nIndex=cStr(vsFlex.Text)
استبدل بـ:
dimsIndexasstring
sIndex=Spread.text
----لا تتضمن معظم برامج التحرير، بما في ذلك Word، وظيفة البحث والاستبدال متعددة الأسطر، ولا يعد محرر VB5.0 استثناءً لذلك. ماذا علي أن أفعل؟
----1. افتح VB وحدد "AddIn" عند تحديد نوع المشروع. بهذه الطريقة قمنا بفتح مشروع اسمه MyAddin. قم بتغيير اسم المشروع إلى ما تريد، مثل "اختبار".
----2. افتح Addin.bas وستجد روتينًا فرعيًا لـ AddToIni:
SubAddToINI()
DimErrCodeAsLong
ErrCode=WritePrivateProfileString("Add-Ins32"، "Myaddin.Connect"، "0"، "vbaddin.ini")
EndSub
----في دليل Windows، يوجد ملف يسمى vbaddin.ini في كل مرة يتم فيها تشغيل VB، فإنه سيحدد برامج AddIn المتوفرة بناءً على إعدادات هذا الملف. وظيفة AddToIni هي في الواقع تسجيل البرنامج الحالي في vbaddin.ini. تعديل "Myaddin.Connect" إلى "Test.Connect" بحيث يتوافق مع اسم المشروع الحالي.
----3. قم بتنفيذ AddToIni في النافذة الحالية لإكمال تسجيل Addin الحالي.
----4. افتح Connect.cls، في منطقة تعريف المتغير: ImplementsIDTExtensibility
----IDTExtensibility هي واجهة التفاعل بين برامج VB وAddIn. عندما يحدد VB AddIdManager في قائمة Addin ويشير إلى برنامج Addin الحالي "اختبار"، سيتم تشغيل حدث 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
----يمكنك الحصول على اسم المشروع1.
----؟ VBInstance.ActiveProject.VBComponent(0).الاسم
----يمكنك الحصول على اسم الوحدة الأولى Form1 من Project1.
----حتى الآن، أوضحنا بشكل أساسي الدلالة الفنية لـ AddIn. والباقي من السهل أن نفهم.
----7. في AddinManager الخاص بـ Project1، قم بإزالة MyAddin.
----8. قم بتعديل الاختبار مرة أخرى، وافتح frmAddin، وقم بالتغيير
PrivateSubOKButton_Click()
MsgBoxVBInstance.الاسم الكامل
EndSub
التغيير إلى:
PrivateSubOKButton_Click()
كولمريبلاس ()
EndSub
برايفتسوبمريبليس ()
DimoProAsVBProject
DimoComAsVBComponent
DimbFindAsBoolean
DimnFindLineasinteger
DimnfindColasinteger
Screen.MousePointer=vbHourglass
OnErrorGoToerrmReplace
SetoPro=VBInstance.ActiveVBProject
"تحقق مما إذا تم حفظ البرنامج."
IfoPro.FileName=""ThenMsgBox"الرجاء الحفظ أولاً!";ExitSub
ForEachoComInoPro.VBComponents
bFind=صحيح
DoWhilebFind
'ابحث عن مقطع الكود الذي تريد استبداله
bFind=oCom.CodeModule.Find("dimnIndexasinteger",nFindLine,nfindCol,oCom.CodeModule.CountOfLines,500,True
IfbFindThen
IfoCom.CodeModule.Lines(nFindLine 1,1)="nIndex=cStr(vsFlex.Text)"
'استبدال بعد العثور عليها
oCom.CodeModule.ReplaceLine
nFindLine،"dimsIndexasstring"
oCom.CodeModule.ReplaceLine
nFindLine 1،"sIndex=Spread.text"
آخر
bFind=false
EndIf
EndIf
حلقة
نيكستوكوم
Screen.MousePointer=vbDefault
ExitSub
خطأ استبدال:
زمارة
Screen.MousePointer=vbDefault
MsgBox"خطأ!"
EndSub
----9.لنضع الاختبار في حالة التشغيل.
----10. إذا كررنا الخطوة 5، سيكون هناك عنصر إضافي "MyAddin" في قائمة Addin الخاصة بـ Project1. نضيف بعض التعليمات البرمجية لاستبدالها في Project1، ثم نقوم بتنفيذ MyAddin، وسيتم إكمال عمل الاستبدال.
----11. بعض الأصدقاء لا يريدون ظهور كلمة "MyAddin" في قائمة Addin، بل يريدون ظهور شعار بمعنى أوضح، مثل "Replace". قم بتغيير ConnectClass الخاص بالاختبار----IDTExtensibility_OnConnection() إلى
SetmcbMenuCommandBar=AddToAddInCommandBar("MyAddIn")
التغيير إلى SetmcbMenuCommandBar=AddToAddInCommandBar("replace")
إذا كنت تريد تغيير MyAddin في AddinManager إلى
"استبدال"، يمكنك فتح Connect.cls باستخدام المفكرة وتغيير: AttributeVB_Description = "MyAdd-In"
التغيير إلى: AttributeVB_Description = "استبدال"
----المقدمة أعلاه هي مجرد تطبيق بسيط لتقنية AddIn، وبعد فهم آليتها، يمكنك إنشاء أدواتك الخاصة وفقًا لاحتياجاتك. بالنسبة لبعض مطوري برامج التطبيقات المحترفين، كلما زاد عدد أدوات AddIn التي تراكمت لديهم، زادت كفاءة البرمجة لديهم. ->