ورود

View Full Version : سوال: مشکل در استایل اکس پی



bahar_azadi
شنبه 28 خرداد 1390, 11:58 صبح
با سلام
من یک برنامه vbدارم که در اون از استایل اکس پی استفاده شده می خوام برنامه رو کامپایل کنم اما خطا داره در فایل log این خطا ها رو دارم :

Class XPTools.XPPanel of control XPPanel1 was not a loaded control class
Class XPTools.XPButton of control cmdExit was not a loaded control class
Class XPTools.XPButton of control Detail was not a loaded control class


در ضمن انواع روش های استفاده از استایل اکس پی رو هم امتحان کردم . مثلا فایل VB6.EXE.Manifest را در پوشه خود وی بی کپی کردم و فایل Project1.exe.manifest را هم کنار پروژه گذاشتم و اون چند خط کد مربوطه رو هم اضافه کردم اما ...(آیکن دکمه ها حالت شون تغییر کرده و اسمشون شده picturebox)
نمیدونم نکته ای هست که من فراموش کرده باشم ؟ لطفا کمکم کنید .:اشتباه:

محسن واژدی
شنبه 28 خرداد 1390, 13:33 عصر
سلام علیکم
ممکن است کنترل که در خطا به آن اشاره شده است وجود نداشته باشد یعنی بنحوی حذف شده باشد و یا دچار مشکلی شده باشد که در این صورت کنترل های مورد استفاده قرار گرفته شده در برنامه به شکل picturebox تبدیل میشوند

البته اگر فقط میخواهید اسکین برنامه تان به اسکین ویندوز تبدیل شود لازم نیست از هیچ کامپوننتی استفاده کنید فقط کافیست
برای تغییر اسکین برنامه به ویندوز (xp یا win7) کافیست APIی زیر را در یک مازول عمومی قرار داده سپس دستور اجرای آن را در روال Main یا رویداد Initialize فرم قرار دهید، و فایل ذکر شده (.manifest) را در کنار برنامه یا در ریسورس برنامه قرار دهید:
Public Declare Sub InitCommonControls Lib "comctl32" ()

بهترین روش قرار دادن دستور بالا را در رویداد Main است سپس startup برنامه را بر روی sub main تنظیم کنید:



Private Sub Main()

On Error Resume Next

Call InitCommonControls
Form1.show

End Sub



موفق باشید

bahar_azadi
شنبه 28 خرداد 1390, 14:20 عصر
متشکرم از راهنمایی تون
مشکل حل شد راهنمایی فروم های دیگه کامل نبود مشکل در مکان قرارگیری کدها بود.:چشمک:

setroyd
شنبه 28 خرداد 1390, 14:47 عصر
باید اینم بدونی که بعضی از object هات monifest روش جواب نمیده بعضی از کنترلهات همون شکل vb6 میمونن

محسن واژدی
شنبه 28 خرداد 1390, 15:00 عصر
بله شمایل داخلی کنترل های نظیر DriveList, FileList, DirList همچنان بصورت کلاسیک خواهند ماند

setroyd
یک شنبه 29 خرداد 1390, 01:03 صبح
progressbar هم همینطور اگر از یک سری کامپوننت های خود vb استفاده کنی با خطا مواجح میشی