ডানিসলে এর প্রতিক্রিয়া (যেখানে তিনি জিজ্ঞাসা করেন যে কেউ কোনও অ্যাড-ইন করতে পারে কিনা) থেকে টোপটি নেওয়া, আমি ভিবি 6 এর জন্য একটি অ্যাড-ইন করেছি। এটি কিছুটা অশোধিত (এবং আমি শীঘ্রই ব্যাখ্যা করব) তবে এটি কাজটি করে।
আমি ভিবি 6-তে একটি নতুন অ্যাড-ইন প্রকল্প তৈরি করেছি যা আমাকে ডিফল্ট "frmAddin" ফর্ম (যা আমি ব্যবহার করি না) এবং "কানেক্ট" ডিজাইনার দিয়েছি। আমি নিজে একটি রঙের ক্লাস যুক্ত করেছি যাতে নিম্নলিখিতটি রয়েছে:
অপশন সুস্পষ্ট
ধীর মি_আইফোরকাল হিসাবে পূর্ণসংখ্যা হিসাবে
ধীর মি_আইব্যাক কালার পূর্ণসংখ্যা হিসাবে
ধীর মি_আইআইডিকেটর কালার হিসাবে পূর্ণসংখ্যা হিসাবে
জনসাধারণের সম্পত্তি ফোরকুলার (বাইওয়াল আইআইডি পূর্ণসংখ্যা হিসাবে)
m_iForeColour = iID
শেষ সম্পত্তি
সর্বজনীন সম্পত্তি পূর্ণসংখ্যা হিসাবে পূর্বাভাস পান ()
ফোরকলার = মি_আইফোরকলর
শেষ সম্পত্তি
সর্বজনীন সম্পত্তি ব্যাক কালর (ব্যাকওয়াল আইআইডি পূর্ণসংখ্যা হিসাবে)
m_iBackColour = iID
শেষ সম্পত্তি
সর্বজনীন সম্পত্তি পূর্ণসংখ্যা হিসাবে ব্যাক কালার () পান
ব্যাককালার = মি_আইব্যাক কালার
শেষ সম্পত্তি
সর্বজনীন সম্পত্তি ইনডিকেটর কলর (বাইওয়াল আইআইডি পূর্ণসংখ্যা হিসাবে)
m_iIndicator Colour = iID
শেষ সম্পত্তি
সর্বজনীন সম্পত্তি ইনডিকেটর কলর () হিসাবে পূর্ণসংখ্যা হিসাবে পান
সূচক রঙ = m_iIndicator Colour
শেষ সম্পত্তি
এবং তারপরে আমি "সংযুক্ত" ডিজাইনার কোডটি নিম্নরূপে সংশোধন করেছি:
অপশন সুস্পষ্ট
বুলিয়ান হিসাবে সর্বজনীন ফর্ম প্রদর্শন করুন
VBIDE.VBE হিসাবে সর্বজনীন VBInstance
Dim mcbMenuCommandBar হিসাবে Office.CommandBarControl
মিমফ্রিমএডডিন নতুন ফ্রমএডডইন হিসাবে
কমান্ডবারভেন্টস কমান্ড বার ইভেন্ট হ্যান্ডলার হিসাবে সর্বজনীন উইভেনভেস্টস মেনুহ্যান্ডলার
অফিস.কম্যান্ডবারকন্ট্রোল হিসাবে মিমি এমসিবি টুলবার
কমান্ডবার্ভেন্টস হিসাবে মেনুহ্যান্ডলার 2 উইথ এভেন্টস পাবলিক
রঙ হিসাবে ম্লান কোডকালস ()
'************************************************* ****************************
'রানস্ক্রিপ্ট সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'কোডটি চালায় যা কোড উইন্ডোটির জন্য প্রয়োজনীয় রঙগুলি সেট করে
'সক্রিয় আইডিই।
'*** এই প্রকল্পটি সত্যই কাজ করার আগে একটি প্রকল্প অবশ্যই লোড করা উচিত ***
'************************************************* ****************************
সাব রানস্ক্রিপ্ট ()
ReadColoursFile
'সরঞ্জামসমূহ> বিকল্প নির্বাচন করুন
সেন্ডকিগুলি "% থেকে", 5
'ট্যাবগুলিতে যান, "বিকল্পগুলি" নির্বাচন করুন
সেন্ডকিগুলি "+ AB ট্যাব}"
সেন্ডকিগুলি "{সঠিক}"
'তালিকা বাক্স নির্বাচন করুন
সেন্ডকিস "{ট্যাব}"
রঙ হিসাবে ধীর কলরসেটিং
ইন্টিজার হিসাবে ম্লান আইক্লুর
আইকালোর জন্য = 0 থেকে 9
সেটকলারস আইকলর, কোডকালস (আইকলর)
পরবর্তী আইকালর
সেন্ডকিস "~"
শেষ সাব
'************************************************* ****************************
'রিডকলার্সফিল সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'ডিস্ক থেকে রঙিন ফাইলটি পড়ে এবং কোডকালার্স অ্যারেকে পপুলেট করে
'থেকে সঠিক রঙ নির্বাচন করার জন্য সেটকলার * পদ্ধতি দ্বারা ব্যবহৃত হয়
'অপশন স্ক্রিন।
'************************************************* ****************************
সাব রিডক্লোরসফায়ার ()
ডিম স্ট্রিং হিসাবে কলরলাইন
ডিমিং কলারআরে () স্ট্রিং হিসাবে
রঙ হিসাবে ধীর কলরসেটিং
ফাইলসিস্টেমোবজেক্ট হিসাবে ডিএমএস ওএসও করুন
ওএফএসও = নতুন ফাইলসিসটেমবজেক্ট সেট করুন
যদি oFSO.FileExists (App.Path & "B VB6CodeColours.dat") না হয় তবে
MsgBox "VB6Code Colours.dat পাওয়া যায় নি" এবং অ্যাপ.প্যাথ, vbOKOnly, "VB6 কোডক্লোর সেটিংস ফাইল পাওয়া যায় নি!"
প্রস্থান করুন
যদি শেষ
OFSO = কিছু না সেট করুন
# 1 হিসাবে ইনপুট জন্য অ্যাপ.পথ এবং "B ভিবি 6 কোড কোডর্স.ড্যাট" খুলুন
রঙিন হিসাবে পুনর্নির্মাণ কোডকলারস (9)
ইওএফ না থাকাকালীন (1)
লাইন ইনপুট # 1, কলরলাইন
কলরআরে = স্প্লিট (কলরলাইন, ",")
যদি ইসনুমারিক (কালারআরে (0)) থাকে তবে
যদি কোডকলারস (কলরআরে (0)) তখন কিছুই হয় না
কলরসেটিং = নতুন রঙ সেট করুন
যদি ইসনুমারিক (কালারআরে (1)) থাকে তবে
কলরসেটিং.ফোরকলর = সিন্ট (কলারআরে (1))
যদি শেষ
যদি ইসনুমারিক (কালারআরে (2)) থাকে তবে
colourSetting.BackColour = CInt (কলারআরে (2))
যদি শেষ
যদি ইসনুমারিক (কালারআরে (3)) থাকে তবে
colourSetting.Indicator Colour = CInt (colourArray (3))
যদি শেষ
কোডকলারস সেট করুন (কলরআরে (0)) = কলরসেটিং
যদি শেষ
যদি শেষ
পথ চলা
বন্ধ # 1
কলর সেটটিং = কিছুই না Set
শেষ সাব
'************************************************* ****************************
'সেটকলার্স সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'তালিকা থেকে বর্ণ আইটেম নির্বাচন করে এবং তারপরে রঙ নির্বাচনকারীকে পুনরাবৃত্তি করে
'আইটেমটির সাথে সম্পর্কিত নিয়ন্ত্রণগুলি এবং মান অনুসারে সেট করে
'ভিবি 6 কোড কোডার্স.ড্যাট ফাইলটিতে সেট করুন।
'************************************************* ****************************
উপ সেটকলারস (বাইওয়াল আইক্লোর পূর্ণসংখ্যা হিসাবে, বাইরফ রঙ হিসাবে রঙিনসেটিং)
ইমেজার হিসাবে ডিমে আইকি
সেন্ডকিস "OME হোম}"
আইকিএর জন্য = 1 আইক্লোরের জন্য
সেন্ডকিগুলি "OW ডাউন}"
পরবর্তী আইকি
সেটকলারসিলিেক্টর কালারসেটিং.ফোরকালআর
সেটকলারসিলিটর কলরসেটিং.ব্যাক কলর
সেটকলারসিলিেক্টর কলরসেটিং.ইন্ডিকেশনর কলর
সেন্ডকিগুলি "+ AB ট্যাব}"
সেন্ডকিগুলি "+ AB ট্যাব}"
সেন্ডকিগুলি "+ AB ট্যাব}"
শেষ সাব
'************************************************* ****************************
'সেটকলার নির্বাচনকারী সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'নির্বাচক কম্বোতে রঙ সেট করে। ধরে নিই ফোকাসটির দিকে রয়েছে
কোড চালানোর আগে নিয়ন্ত্রণের প্রিরিডিং (প্রথম লাইনের ট্যাবগুলিতে
'ধরে নেওয়া নিয়ন্ত্রণ)।
'************************************************* ****************************
উপ সেটকলার নির্বাচনকারী (বাইওয়াল আইক্লোর পূর্ণসংখ্যা হিসাবে)
ইমেজার হিসাবে ডিমে আইকি
সেন্ডকিস "{ট্যাব}"
সেন্ডকিস "OME হোম}"
আইকিএর জন্য = 1 আইক্লোরের জন্য
সেন্ডকিগুলি "OW ডাউন}"
পরবর্তী আইকি
শেষ সাব
'************************************************* ****************************
'AddinInstance_OnConnication সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'অ্যাডিন আইডিই দ্বারা লোড হওয়ার পরে এই পদ্ধতিটি চলে
'************************************************* ****************************
প্রাইভেট সাব অ্যাডইনস্ট্যান্স_অনেকশন (অবজেক্ট হিসাবে বাইভাল অ্যাপ্লিকেশন, অ্যাডআইনডিজাইনরঅবজেক্টস.সেক্সট_কানেক্টমোড হিসাবে বাইভাল কানেক্টমোড, অবজেক্ট হিসাবে বাইভাল অ্যাডইনস্টাইন, কাস্টম () ভেরিয়েন্ট হিসাবে)
ত্রুটিতে GoTo এ ত্রুটিহান্ডলার
'ভিবি উদাহরণ সংরক্ষণ করুন
VBInstance = অ্যাপ্লিকেশন সেট করুন
যদি কানেক্টমোড এক্সট_মিটার_আসটার্নাল হয়
এমসিবিমেনুকম্যান্ডবার সেট করুন = অ্যাডটোএডডইনকমন্ডবার ("ভিবি 6 কোড রঙিন")
'ইভেন্ট ডুবুন
Me.MenuHandler = VBInstance.Events.CommandBarEvents (mcbMenuCommandBar) সেট করুন
দিম oStdToolbar হিসাবে অফিস.কমন্ডবার
অফিস.কমন্ডবারকন্ট্রোল হিসাবে ডিমে ওএসডিটিউলবার আইটেম
OStdToolbar = VBInstance.CommandBars ("স্ট্যান্ডার্ড") সেট করুন
OStdToolbarItem = oStdToolbar.Controls.Add সেট করুন (প্রকার: = msoControlButton)
oStdToolbarItem.Style = msoButtonCaption
oStdToolbarItem.Caption = "আইডিই রং সেট করুন"
oStdToolbarItem.BeginGroup = সত্য
Me.MenuHandler2 = VBInstance.Events.CommandBarEvents (oStdToolbarItem) সেট করুন
যদি শেষ
প্রস্থান করুন
ErrorHandler:
MsgBox এরার বিবরণ
শেষ সাব
'************************************************* ****************************
'অ্যাডিনইনস্ট্যান্স_অনস্পর্ক সংযোগ সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'আইডিই দ্বারা অ্যাডিনটি সরানো হয় এবং কোনও পরিষ্কার হয়ে যায় তখন এই পদ্ধতিটি চলে
'রেফারেন্স ইত্যাদি।
'************************************************* ****************************
প্রাইভেট সাব অ্যাডইনস্ট্যান্স_অনডিসকনেকশন (বাইডাল সরানমোড হিসাবে অ্যাডইনডিজাইনরঅবজেক্টস.সেক্সট_ডিসকনেক্টমোড, কাস্টম () ভেরিয়েন্ট হিসাবে)
ত্রুটি পুনরায় শুরু করার পরে
'কমান্ড বার এন্ট্রি মুছুন
mcbMenuCommandBar.Delete
'অ্যাড-ইন বন্ধ করুন
যদি ফর্মডিপ্লাই করে থাকে তবে
SaveSetting App.Title, "সেটিংস", "DisplayOnConnect", "1"
ফর্মডিসপ্লেড = ভুয়া
আর
SaveSetting App.Title, "সেটিংস", "DisplayOnConnect", "0"
যদি শেষ
MfrmAddIn আনলোড করুন
MfrmAddIn = কিছুই না সেট করুন
মেনুহ্যান্ডলার সেট করুন = কিছুই নয়
মেনুহ্যান্ডলার 2 = কিছুই সেট করুন
শেষ সাব
'************************************************* ****************************
'মেনুহ্যান্ডলার_ ক্লিক সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'মেনু আইটেমটি ক্লিক করা হলে এই পদ্ধতিটি প্রয়োজনীয় কাজগুলি সম্পাদন করে।
'************************************************* ****************************
প্রাইভেট সাব মেনু হ্যান্ডলার_ক্লিক (বাইওয়াল কমান্ডবার বারকন্ট্রোল অব অবজেক্ট, বুলিয়ান হিসাবে পরিচালনা করা, বুলিয়ান হিসাবে বাতিল ডিফল্ট)
RunScript
শেষ সাব
'************************************************* ****************************
'মেনুহ্যান্ডলার 2_স্লিক ক্লিক করুন
'------------------------------------------------- ----------------------------
'বর্ণনা:
'টুলবার বোতামটি ক্লিক করা হলে এই পদ্ধতিটি প্রয়োজনীয় কাজগুলি সম্পাদন করে।
'************************************************* ****************************
ব্যক্তিগত সাব মেনু হ্যান্ডলার 2_ ক্লিক করুন (বাইভাল কমান্ডবার বারকন্ট্রোল অব অবজেক্ট, বুলিয়ান হিসাবে পরিচালনা করা, বুলিয়ান হিসাবে বাতিল ডিফল্ট)
RunScript
শেষ সাব
'************************************************* ****************************
'AddToAddInCommandBar সাব
'------------------------------------------------- ----------------------------
'বর্ণনা:
'মেনু তালিকায় নির্দিষ্ট আইটেম যুক্ত করে।
'************************************************* ****************************
অফিস.কমন্ডবারকন্ট্রোল হিসাবে ফাংশন অ্যাডটোএডডইনকম্যান্ডবার (স্ট্রিং হিসাবে এস ক্যাপশন)
Dim cbMenuCommandBar হিসাবে Office.CommandBarControl 'কমান্ড বার অবজেক্ট
অবজেক্ট হিসাবে ডিবি সিবিমেনু
ত্রুটি পুনরায় শুরু করার পরে
'দেখুন আমরা অ্যাড-ইন মেনু পেতে পারি কিনা
সিবিমেনু = ভিবিআইএনস্ট্যানস.কম্যান্ডবারস সেট করুন ("অ্যাড-ইনস")
সিবিম্যানু যদি কিছু হয় না তবে
'উপলব্ধ নেই তাই আমরা ব্যর্থ হই
প্রস্থান প্রস্থান
যদি শেষ
ত্রুটিতে GoTo এ ত্রুটিহান্ডলার
কমান্ড বারে এটি যুক্ত করুন
সিবিমেনুকম্যান্ডবার সেট করুন = সিবিমেনু.কন্ট্রোলস.এড করুন (1)
'ক্যাপশন সেট করুন
cbMenuCommandBar.Caption = sCaption
AddToAddInCommandBar = cbMenuCommandBar সেট করুন
প্রস্থান প্রস্থান
ErrorHandler:
'দয়া করে প্রস্থান করুন
ফাংশন শেষ
এই কোডটি অ্যাপ্লিকেশনটিকে একটি ফাইল থেকে আমার রঙগুলি পড়ার অনুমতি দেয় যা .dll (VB6CodeColours.dat নামে পরিচিত) একই ডিরেক্টরিতে থাকে। এই ফাইলটিতে নিম্নলিখিতগুলি রয়েছে (এবং আপনি ভিবি 6.এক্সইএতে কোন রঙগুলি প্রতিস্থাপন করবেন তার উপর ভিত্তি করে এটি পৃথক হবে সুতরাং একটি সরল অনুলিপি এবং পেস্ট সম্ভবত কাজ করবে না।
0,14,12,0
1,0,0,0
2,16,13,0
3,0,15,15
4,16,5,5
5,7,12,0
6,11,12,0
7,8,12,0
8,16,10,10
9,16,3,3
জিব্রিশ মনে হচ্ছে, তবে আমি ব্যাখ্যা করব। এতে "কোড কালার", "ফোরগ্রাউন্ড", "ব্যাকগ্রাউন্ড", ইনডিকেটর "ফর্ম্যাট রয়েছে তাই শীর্ষ সারিতে" স্বাভাবিক পাঠ্য "সেট করবে ফোরগ্রাউন্ডের কম্বোয়ের 14 তম আইটেমটিতে, পটভূমির জন্য দ্বাদশ এবং সূচকটির জন্য প্রথম হবে ।
কেন আমি বললাম এটি একটি দুর্দান্ত অশোধিত সমাধান: * এটি সেন্ডকি ব্যবহার করে। সেখানে আর কোনও ব্যাখ্যার দরকার নেই আমি নিশ্চিত :) * কার্যকর হওয়ার জন্য ব্যবহারকারীকে মেনু / সরঞ্জামদণ্ড বিকল্পটি ক্লিক করতে হবে। * কোডটি সুনির্দিষ্টভাবে কাঠামোগত নয় (আমার মতে) তবে সেই সময়টিতে আমি যে পরিমাণ সময় উত্সর্গ করতে পারি তার উপর ভিত্তি করে ছিল। আমি ভবিষ্যতে এটির উন্নতি করার লক্ষ্য রেখেছি, তবে বর্তমান অবস্থায় এটি আমার পক্ষে ভাল কাজ করে (তাই আমি সম্ভবত এটি ছেড়ে যাব!)
সম্ভবত একটি ভিত্তি সহ, কেউ এর উপর আরও প্রসারিত করতে পারে।