ورود

View Full Version : حرفه ای: تنظیم یک تم خاص برای فرم برنامه



saber67
چهارشنبه 04 بهمن 1391, 12:29 عصر
چه جوری میشه یه فایل تم کنار برنامه مون بزاریم و کاری کنیم که وقتی برنامه اجرا میشه اون تم روش اجرا بشه، یعنی همه کنترلها شکل اون تم بشن؟
ببینید ارتباط مستقیم با تم رو می خوام نه مثلا برنامه هایی مثل SkinBuilder که باهاشون تم می سازی و باید از کامپونت خودشون برای ارتباط با تم استفاده کرد

بازم میگم اصلا کامپونت معرفی نکنید! این روش رو نمی پسندم فقط نحوه ارتباط با یه تم عادی ویندوز (مثل تم های زیبا سازی XP) و ست کردن اون به عنوان تم برنامه

و در آخر یه نکته بگم که دوستان به اشتباه نیفتن، ما کلا کاری به تم جاری ویندوز نداریم! هر شکلی هست به خودش ربط داره:چشمک: برنامه ما از تم اختصاصی خودش باید استفاده کنه

m2011kh
جمعه 06 بهمن 1391, 08:28 صبح
سلام دوست عزیز.
متن زیر رو در یک NotePad بنویسید:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" processorArchitecture="*" version="6.0.0.0" name="MMD"/>
<description>Enter your Description Here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
language="*"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
و اون رو به این صورت ذخیره کنید:
اسم فایلتون همراه با پسوند و MANIFEST
مثلا:
MMD.exe.MANIFEST
متنی که باید ذخیره کنید رو نگاه کنید و دنبال MMD بگیردید و اون رو به ام فایل برنامه خودتون تغییر بدین.
این فایل رو کنار برنامه تون بزارید.

همه کنترل های برنامه تون به شکل تم ویندوز خواهند شد حالا چه ویندوز 98 باشه چه 8
اگه میخواید برنامه تون پروتابل باشه میتونید اون رو به صورت Resours تو برنامه ذخیره کنید فقط دقت کنید که اگه میخواید تو برنامه resourse کنید باید حجم فایلی که ذخیره میکنید ضریب 4 باشه و گرنه کار نمیکنه.

فقط یه چیزی بگم تا یادم نرف:
برای این که این کار همیشه جواب بده باید این کامپوننت ها رو روی فرومتون قرار بدید(از کامپوننت های پیشفرض هست که همراه خود ویژال نصب میشن)
Microsoft Windows Common Controls 6.0 (SP6)
Microsoft Windows Common Controls 5.0 (SP2)
دقیق نمیدونم کدومشون بود.ولی خودم هیچوقت این کارو نمیکنم تو برنامه ام ولی شنیدم که اگه اینا رو رو فروم نزارید ممکنه رو بعضی سیستما به مشکل بخوره.من که تا حالا رو هبچ سیستمی مشکل نداشتم.
شما اگه میخواید از تم خودتون اتفاده کنید و به تم جاری ویندوز اری نداشته باشید فک نکنم بدون استفاده از کامپوننت مار همچین ساده ای باشه.
امیدوارم مفید بوده باشه.
موفق باشید
MMD

saber67
جمعه 06 بهمن 1391, 23:12 عصر
ممنون m2011kh عزیز
اما سوال من فراتر از این حرفاس، این روش رو خیلی وقته بلدم!
اون دو تا کامپوننتیم که معرفی کردی، محض اطلاعت بگم شماره 5 با این ترفند شکلش مثل تم ویندوز میشه
اما توجه ننمودی چی گقتم! گفتم ما کاری به تم ویندوز نداریم، هر چی می خواد باشه، برنامه ما تمی که کنارش قرار دادیم رو باید لود کنه واسه خودش


فک نکنم بدون استفاده از کامپوننت کار همچین ساده ای باشه.

عزیز من کامپوننت ها که از هوا نمی یان، با همین زبان های برنامه نویسی ساخته میشن
کدی که تو کامپوننت نوشتن، ما نمی تونیم بنویسیم؟

the king
جمعه 06 بهمن 1391, 23:56 عصر
چه جوری میشه یه فایل تم کنار برنامه مون بزاریم و کاری کنیم که وقتی برنامه اجرا میشه اون تم روش اجرا بشه، یعنی همه کنترلها شکل اون تم بشن؟
ببینید ارتباط مستقیم با تم رو می خوام نه مثلا برنامه هایی مثل SkinBuilder که باهاشون تم می سازی و باید از کامپونت خودشون برای ارتباط با تم استفاده کرد

بازم میگم اصلا کامپونت معرفی نکنید! این روش رو نمی پسندم فقط نحوه ارتباط با یه تم عادی ویندوز (مثل تم های زیبا سازی XP) و ست کردن اون به عنوان تم برنامه

و در آخر یه نکته بگم که دوستان به اشتباه نیفتن، ما کلا کاری به تم جاری ویندوز نداریم! هر شکلی هست به خودش ربط داره:چشمک: برنامه ما از تم اختصاصی خودش باید استفاده کنه

برنامه شما وقتی کاری به تم جاری ویندوز نداره که شما هم کاری به کنترل های عادی ویندوز نداشته باشید و کنترل ها تم اختصاصی خودشون رو داشته باشند
و وقتی می توانید اینکار رو بدون گرفتن کمپوننت از سایرین انجام دهید که کنترل ها اختصاصی تون رو خودتون بسازید.
رجوع شود به :

ایجاد برنامه های زیبا در Vb (http://forum.majidonline.com/threads/95041)

saber67
شنبه 07 بهمن 1391, 11:34 صبح
ممنون the king عزیز
ساختن کامپوننت رو هم بلدم، مثلا خودمون دکمه ای بسازیم که شکل دلخواه مون رو داشته باشه
اما فکر کنم راه های دیگه ای هم باشه، یه بار یه برنامه ای دیدم (الان اسمش یادم نیست) یه تم شبیه ویستا کنارش بود و موقع اجرا (تو ویندوز XP ) اون تم رو ست می کرد واسه خودش، همه کنترل هاش شبیه ویستا میشد


برنامه شما وقتی کاری به تم جاری ویندوز نداره که شما هم کاری به کنترل های عادی ویندوز نداشته باشید و کنترل ها تم اختصاصی خودشون رو داشته باشند
در این مورد مطمئنی؟ فکر نکنم این طور باشه ها!
خب تو خود ویندوز وقتی تمش رو عوض می کنیم، شکل همه کنترل ها تغییر می کنه! این یعنی یه واسطه واسه کنترل ها هست که شکل شون رو تعیین می کنه!
خب ما می تونیم به برنامه مون واسط خودمون رو معرفی کنیم؟

در ضمن برنامه SkinBuilder دقیقا همین کاری که من میگم می کنه دیگه!!! وقتی از تم اون استفاده می کنیم اگه یه Command عادی روی فرم بزاریم شکلش رو از تم دریافت می کنه، پس حتما میشه!
اما من می خوام از کامپوننت استفاده نکنم
یا اگه هم نیاز باشه استفاده کنم کامپوننت خودم رو داشته باشم، یعنی کدش تو خود برنامم باشه
بیشتر برام جنبه یادگیری داره