PDA

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



zer0_cool
پنج شنبه 21 مهر 1390, 14:21 عصر
درود
چطور میشه شکل دکمه commandbutton رو تغییر داد؟
مثلا برجستش کرد یا رنگش رو عوض کرد؟

M.T.P
پنج شنبه 21 مهر 1390, 15:06 عصر
ممکن نیست.

MohammadGh2011
پنج شنبه 21 مهر 1390, 15:45 عصر
درود
چطور میشه شکل دکمه commandbutton رو تغییر داد؟
مثلا برجستش کرد یا رنگش رو عوض کرد؟

ممکن نیست.
سلام عليکم
ببخشيد چرا ممکن نيست جناب M.T.P!؟!
براي تغيير رنگ دکمه ميتونيد خاصيت Backcolor کامند رو از قسمت Properties هر رنگي که خاستيد بديد بعد از اون بايد خاصيت Style کامند رو هم روي Graphical بزاريد تا رنگ روي کامند اعمال بشه.



موفق باشيد.

M.T.P
پنج شنبه 21 مهر 1390, 16:03 عصر
ببخشيد چرا ممکن نيست جناب M.T.P!؟!
منظورم برجسته شدن و رنگ متن در حالت معمول هستش.

zer0_cool
جمعه 22 مهر 1390, 11:52 صبح
یعنی نمیشه دکمه رو برجسته کرد؟ مثل زبان های دیگه. به طور مثال دکمه ماشین حساب خود ویندوز رو ببینید منظورم این شکلی هست.

MohammadGh2011
جمعه 22 مهر 1390, 11:57 صبح
یعنی نمیشه دکمه رو برجسته کرد؟ مثل زبان های دیگه. به طور مثال دکمه ماشین حساب خود ویندوز رو ببینید منظورم این شکلی هست.
سلام عليکم
دوست عزيز شما ميتوني از کامندهاي کامپوننت ها (OCX) استفاده کني.يه جستجو کن کامپوننت هاي زيادي هست.


موفق باشيد

returnx
جمعه 22 مهر 1390, 12:09 عصر
به جز OCX شما میتونید از فایل Manifest هم استفاده کنید که تمام کنترل ها رو به حالت ویندوزی که برنامه توش در حال اجراست در میاره کلمه Manifest رو در همین تالار جستجو کنید...

vbhamed
شنبه 23 مهر 1390, 09:20 صبح
سلام

به غير از Manifest و OCX جداگانه كه دوست خوبمون Ms2222 اشاره كردن مي‌تونيد از اسكينرهايي مثل اكتيواسكين يا SkinCrafter هم استفاده كنيد تا دكمه هاي فعلي رو تغيير شكل بدهند

mandanim
شنبه 23 مهر 1390, 15:54 عصر
مرگ هرموجود زنده بجزخالق یکتا و فنای دنیا؛ خاموش شدن این شمع نورانی خدمت خانواده محترم ایشان تسلیت عرض می کنم. ازخداوند یکتا رفع درجات آن بزرگوار دربهشت أعلا و مزید فضل و رحمت پروردگار بی همتا برایشان وطول عمر بازمانگان آن مرحوم هراه با سلامتی و حسن عاقبت شان خواهانم. :گریه:

zer0_cool
سه شنبه 26 مهر 1390, 18:43 عصر
به جز OCX شما میتونید از فایل Manifest هم استفاده کنید که تمام کنترل ها رو به حالت ویندوزی که برنامه توش در حال اجراست در میاره کلمه Manifest رو در همین تالار جستجو کنید...
درود
من در مورد Manifest سرچ کردم چیزی دستگیرم نشد لطفا درموردش توضیح بدید.
تشکر.

محسن واژدی
سه شنبه 26 مهر 1390, 23:41 عصر
من در مورد Manifest سرچ کردم چیزی دستگیرم نشد لطفا درموردش توضیح بدید.

سلام
manifest یک فایل xml است که از آن برای تنظیم ویژگیهای مختلفی از یک فایل اجرایی استفاده میشود
دراینجا ما از manifest برای تغییر دادن پوسته برنامه به ویندوز استفاده میکنیم (تغییر محیط کلاسیک برنامه به ویندوز)
این فایل ها که پسوند "*.manifest " را در انتهای خود دارند میتوانید در ریسورس برنامه ها یا فولدر system32 پیدا کنید
هنگامی که نام یکی از این فایل ها را در کنار برنامه ای قرار دهید و نام این فایل را به نام+پسوند فایل اجرایی مورد نظر تغییر دهید (مثلا App.exe.manefest) از آن به بعد پوسته برنامه اجرا شده با پوسته ویندوزی یکسان خواهد بود

اطلاعات بیشتر دراین باره:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa374191(v=vs.85).aspx

موفق باشید

mr-adler
چهارشنبه 27 مهر 1390, 00:15 صبح
ممنونم
یعنی بعد از اینکه اسم فایل manifest را به App.exe.manefest تغییر دادیم باید فایل اجرایی برنامه (با فرمت exe ) رو حذف کنیم؟ و از این به بعد با این فایل وارد محیط اجرایی برنامه بشیم؟
راستی اگه از این نوع فایل ها(اونایی که پوسته رو تغییر میدن) دارید اگه ممکنه اینجا قرار بدید تا یکمی باهاشون کار کنیم.:خجالت: (تو گوگل سرج کردم اما منبع فارسی خوبی پیدا نکردم:ناراحت:)
(میخوام از دست این skinframwork خلاص بشم:لبخند:)

محسن واژدی
چهارشنبه 27 مهر 1390, 00:45 صبح
یعنی بعد از اینکه اسم فایل manifest را به App.exe.manefest تغییر دادیم باید فایل اجرایی برنامه (با فرمت exe ) رو حذف کنیم؟ و از این به بعد با این فایل وارد محیط اجرایی برنامه بشیم؟

نه نه، نباید فایل اجرایی را حذف کنیم، همانگونه که پست قبلی هم عرض کردم تنها کاری که بایستی انجام بدهیم تغییرنام این فایل با فایل اجرایی است، پس از آن طبق روال عادی فایل اجرایی برنامه را اجرا میکنیم تا نتیجه را مشاهده کنیم،
هربرنامه ای که پوسته ای همسان با ویندوز دارد از این فایل استفاده کرده است وگرنه پوسته ای اولیه آن همانند برنامه های عادی وی بی کلاسیک است
این فایل ها در فولدر سیستم زیاد هستند، مثلا یکی نمونه در آدرس زیر در فولدر سیستم ویندوز xp قرار دارد:
%windir%\system32\logonui.exe.manifest

برای راحتی کار میتوانید این فایل را به ریسورس برنامه بیافزائید

همچنین نکته ای که در اینجا وجود دارد، بایستی کد زیر را نیز در رویداد Initialize فرم یا در SubMain ماژول قبل از اجرای برنامه اجرا کنید در غیر اینصورت قرار دادن manifest در کنار برنامه میتواند موجب بروز خطا و مانع از اجرای برنامه شود:

Private Declare Sub InitCommonControls Lib "comctl32" ()
Private Sub Main()
Call InitCommonControls
End Sub


موفق باشید

mr-adler
چهارشنبه 27 مهر 1390, 01:14 صبح
درست شد. از یه فایل دیگه به جای فایل مد نظر شما استفاده کرده بودم...:خجالت:
76761
عالی بود ممنونم

returnx
چهارشنبه 27 مهر 1390, 01:26 صبح
احتمالا بخاطر اینکه اصلا Submain شما اجرا نمیشه ، شما از منوی Project به Properties پروژتون برید و Strat Up Object رو به Submain تغییر بدید،در ضمن دقت کنید که حتما باید از پروژتون فایل اجرایی بسیازید و تغییرات رو فایل اجرایی اعمال میشه و گرنه شما در زمان کد نویسی این تغیرات رو نمیبینید...

mr-adler
چهارشنبه 27 مهر 1390, 15:56 عصر
با سلام
اخرین نکته ای که باقی موند اینه که از کجا متوجه بشیم هر فایل manifest مربوط به چه کاریه؟
ایا تمامشون تغییر پوسته رو انجام میدن یا هر کدوم مختص به یه عمل خاص هست؟
76769
مثلا کدوم مربوط به تغییر پوسته هست و ...http://barnamenevis.org/images/misc/pencil.png

zer0_cool
چهارشنبه 27 مهر 1390, 16:02 عصر
سلام
manifest یک فایل xml است که از آن برای تنظیم ویژگیهای مختلفی از یک فایل اجرایی استفاده میشود
دراینجا ما از manifest برای تغییر دادن پوسته برنامه به ویندوز استفاده میکنیم (تغییر محیط کلاسیک برنامه به ویندوز)
این فایل ها که پسوند "*.manifest " را در انتهای خود دارند میتوانید در ریسورس برنامه ها یا فولدر system32 پیدا کنید
هنگامی که نام یکی از این فایل ها را در کنار برنامه ای قرار دهید و نام این فایل را به نام+پسوند فایل اجرایی مورد نظر تغییر دهید (مثلا App.exe.manefest) از آن به بعد پوسته برنامه اجرا شده با پوسته ویندوزی یکسان خواهد بود

اطلاعات بیشتر دراین باره:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa374191(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/aa374191%28v=vs.85%29.aspx)

موفق باشید
ممنون ولی با این کار برنامه فقط تا وقتی که فایل manifest باشه شکلش شبیه ویندوز ولی وقتی در کامپیوتر دیگه اجرا بشه شکلش به حالت اولیه بر میگرده من میخوام بدون فایل اضافی شکل دکمه ها رو عوض کنم

mr-adler
چهارشنبه 27 مهر 1390, 16:26 عصر
ممنون ولی با این کار برنامه فقط تا وقتی که فایل manifest باشه شکلش شبیه ویندوز ولی وقتی در کامپیوتر دیگه اجرا بشه شکلش به حالت اولیه بر میگرده
به راحتی میتونید این فایل رو به کامپیوتر مقصد انتقال بدید.دقیق اطلاع ندارم که با برنامه ستاپ ساز میشه یا نه و لی اگر هم نشد به صورت دستی قرارش میدید تو پوشه برنامه.

من میخوام بدون فایل اضافی شکل دکمه ها رو عوض کنم
به نظر من امکانش نیست. دوستان راه هایی که پیشناهاد دادند کامپونت ها , manifest و اسکینر هایی مثل اکتیو اسکین بود که همگی از فایل مربوط به خود استفاده میکنند.
که توضیح مربوط به دو مورد اول در همین تاپیک داده شد

zer0_cool
چهارشنبه 27 مهر 1390, 16:32 عصر
به راحتی میتونید این فایل رو به کامپیوتر مقصد انتقال بدید.دقیق اطلاع ندارم که با برنامه ستاپ ساز میشه یا نه و لی اگر هم نشد به صورت دستی قرارش میدید تو پوشه برنامه.

به نظر من امکانش نیست. دوستان راه هایی که پیشناهاد دادند کامپونت ها , manifest و اسکینر هایی مثل اکتیو اسکین بود که همگی از فایل مربوط به خود استفاده میکنند.
که توضیح مربوط به دو مورد اول در همین تاپیک داده شد
در کل سوال من این بود که آیا برنامه ویژوال بیسیک 6 این امکان رو داره که بشه باهاش شکل برنامه رو هم عوض کرد یا فقط حالت کلاسیک داره؟

zer0_cool
چهارشنبه 27 مهر 1390, 16:43 عصر
چون در زبان های دیگه این قابلیت وجود داره که شما میتونید به هر شکلی نرم افزار خودتون رو طراحی کنید

M.T.P
چهارشنبه 27 مهر 1390, 17:18 عصر
راهکارهایی که دوستان پیشنهاد کردند همه عملی و درست هستند اما اگه می خواهید این فایل Manifest رو داخل پروژه جاش بدید باید به شکل زیر عمل کنید.

تابع InitCommonControls رو در Form_Intialize صدا بزنید.
یک فایل ریسورس با عنوان Manifest در کنار پروژه ضمیمه هست که در هر پروژه ای خواستید استفاده کنید از منوی Project گزینه Add File رو میزنید و این فایل رو بهش معرفی می کنید.


پروژه زیر رو کامپایل کنید و نتیجه رو ببینید.

mr-adler
چهارشنبه 27 مهر 1390, 17:46 عصر
با سلام
فایلی که شما اشاره داشتید پسوندش res بود . فرقشون با فایل با پسوند .manifest چیه؟

M.T.P
چهارشنبه 27 مهر 1390, 18:01 عصر
با سلام
فایلی که شما اشاره داشتید پسوندش res بود . فرقشون با فایل با پسوند .manifest چیه؟

فایل های res فایل های ریسورس هستند که با Resource editor ویژوال بیسیک قابل رویت و ویرایش هستد.

mr-adler
چهارشنبه 27 مهر 1390, 18:13 عصر
با عرض معذرت این سوال هم برام پیش اومد:
این فایل ریسورس رو از روی فایل manifest ساختید؟ چطوری درست شد؟
در ضمن از کجا به Resource editor ویژوال دسترسی پیدا کنم؟

ممنونم:لبخندساده:

M.T.P
چهارشنبه 27 مهر 1390, 19:25 عصر
با عرض معذرت این سوال هم برام پیش اومد:
این فایل ریسورس رو از روی فایل manifest ساختید؟ چطوری درست شد؟
در ضمن از کجا به Resource editor ویژوال دسترسی پیدا کنم؟

ممنونم:لبخندساده:

از منوی Add-in گزینه Add-in manager رو بزنید و از پنجره باز شده گزینه vb6 resource editor رو دابل کلیک کنید.
بعد از انجام مرحله فوق Resource editor به تولبار vb6 اضافه میشه.(یک آیکن سبز رنگ)

mr-adler
چهارشنبه 27 مهر 1390, 19:39 عصر
این فایل ریسورس رو از روی فایل manifest ساختید؟ چطوری درست شد؟
اگه مقدوره به این سوال هم جواب بدید.:متفکر:منظورم اینه که فایل res رو خودتون با استفاده از manifest ایجاد کردید یا قبلا به صورت اماده بود؟

راهکارهایی که دوستان پیشنهاد کردند همه عملی و درست هستند اما اگه می خواهید این فایل Manifest رو داخل پروژه جاش بدید باید به شکل زیر عمل کنید.
راستی این مورد هم که به صورت غیر مستقیم از فایل استفاده میکنه.پس تفاوتش با manifest از لحاظ ارتباط داشتن با فایل خارجی چیه؟

returnx
چهارشنبه 27 مهر 1390, 22:45 عصر
76779
چون در زبان های دیگه این قابلیت وجود داره که شما میتونید به هر شکلی نرم افزار خودتون رو طراحی کنید بله میشه ، هم با استفاده از OCX های مربوط به Skin و هم اینکه Skin رو خودتون طراحی کنید و با کد نویسی Load کنید مثلا برنامه زیر رو ببنید من با استفاده از Flash و فایل های Png ساختم:

mr-adler
سه شنبه 03 آبان 1390, 00:42 صبح
سلام نمیدونم چرا این مشکل برام پیش میاد در صورتی که قبلا این مشکل رو نداشتم.در زمان اعمال تغییرات توسط manifest برنامم اجرا نمیشه::ناراحت:
77009
این ارور رو میده.

احتمالا بخاطر اینکه اصلا Submain شما اجرا نمیشه ، شما از منوی Project به Properties پروژتون برید و Strat Up Object رو به Submain تغییر بدید،
زمانی که تنظیمات Strat Up Object به Submain تغییر میدم دیگه این ارور رو نمیده اما اصلا برنامه اجرا نمیشه.دیگه کاری نموند که نکرده باشم.
راستی پست 16 رو اگه ممکنه پاسخ بدید.
ممنونم

returnx
سه شنبه 03 آبان 1390, 02:25 صبح
زمانی که تنظیمات Strat Up Object به Submain تغییر میدم دیگه این ارور رو نمیده اما اصلا برنامه اجرا نمیشه.دیگه کاری نموند که نکرده باشم.
فکر کنم برنامه شما اجرا میشه ، اما چون فرم رو Show نمی کنید ، فکر می کنید که برنامه شما اجرا نمیشه (البته این یک حدس هست)

اخرین نکته ای که باقی موند اینه که از کجا متوجه بشیم هر فایل manifest مربوط به چه کاریه؟دقت کنید ، فایل manifest فایلیست که به سیستم عامل اعلام میکنه که برنامه برای اجرا شدن به چه پیشنیاز هایی نیاز داره ، شما اگه بخوای بدونی هر فایل manifest که تو سیستمت وجود داره به چه درد می خوره باید بشینی تک تک رو مطالعه کنی....

ایا تمامشون تغییر پوسته رو انجام میدن یا هر کدوم مختص به یه عمل خاص هست؟فکر کنم جواب سوالتو ن رو گرفتید...
اما چند نکته در مورد استفاده از فایل manifest :
1- برنامه هایی که با ظاهر Windows های XP و بعد از XP اجرا میشن باید ظاهر کنترل هاشون رو از فایل ComCtl32.dll بگیرند پس ، قبل از اجرای برنامه باید به این فیال متصل بشند که این کار رو باید با تابع InitCommonControls داد ، دقت کنید که اینکار باید قبل از نمایش فرم باید انجام بگیره که بهتره با Sub Main انجام بشه...
2- کنترل هایی مثل Command Dialog و یا Option Button از فایل ComCtl32.dll استفاده می کنند اما بعضی از کنترل هایی مثل progressbar یا SliderBar که جز Component های رایج ویندوز هستند از این فایل استفاده نمی کنند که بهتره از نسخه 5 این کامپوننت ها که از فایل یعنی ComCtl32.dll استفاده میکنند استفاده کنید یعنی : Microsoft Windows Common Control 5
3- حجم فایل Manifest شما حتما باید مضربی از 2 باشه ، یعنی 7 kb قابل قبول نیست و خطا میده (دلیلش نمیدونم) ، پس اگه به دلایلی مضرب دو نبود میتونید با اظافه کردن چند کارکتر Space فضا فایل رو بالا ببرید..
موفق باشید..../

mr-adler
شنبه 07 آبان 1390, 17:56 عصر
سلام علیکم
کسی هست بدونه که چطوری جناب M.T.P (http://barnamenevis.org/member.php?132020-M.T.P) فایل ریسورس مربوط به manifest رو درست کردند؟
من فایل manifest رو همنام با پروژه که قراره کمپایل بشه کردم بعد اونو اوردم تو resource editor و بعد با فرمت res ذخیرش کرد. با اون روشی که جناب M.T.P (http://barnamenevis.org/member.php?132020-M.T.P) گفته بودن فراخوانیش کردم اما جواب نداد.
مشکل اینجاست که نمیدونم چطوری باید فایل manifest رو در resource editor ویرایش کنم.
وقتی روی موردی که در پنجره resource editor لود کردم کلیک میکنم پنجره ای باز میشه با نام edit properties که دارای موارد متغیری مثل type & id & language هست. حدس میزنم اشکال کار از این موارد باشه.

امیدوارم منظورمو واضح رسونده باشم.
ممنون
________________
فراموش کردم بگم از جناب ms2222 (http://barnamenevis.org/member.php?141489-ms2222) تشکر میکنم مشکلم خدا رو شکر در رابطه با پست 15 حل شد ...

M.T.P
شنبه 07 آبان 1390, 18:08 عصر
فایل manifest رو به res تبدیل نکردم ، شما تو resource editor گزینه add custom رو می زنید و فایلی رو که پسوندش manifest هست رو open می کنید ، حالا اگه این ریسورس رو که فقط شامل فایل manifest هست رو ذخیره کنید با پسوند res ذخیره میشه و برای هر پروژه دیگه که خواستید ازش استفاده کنید کافیه Add File رو بزنید و فایل res رو بهش معرفی کنید.

mr-adler
شنبه 07 آبان 1390, 18:37 عصر
سلام
ممنونم

فایل manifest رو به res تبدیل نکردممنظورم اینه که از فایل manifest برای ایجاد فایل ریسورس استفاده کردید.
77198
دقیقا همین کاری رو که گفتید انجام داده بودم اما پوسته بدون تغییر باقی میمونه.
البته این رو هم بگم که برنامه رو کمپایل هم میکنم....

mr-adler
یک شنبه 08 آبان 1390, 03:58 صبح
فایل manifest رو به res تبدیل نکردم ، شما تو resource editor گزینه add custom رو می زنید و فایلی رو که پسوندش manifest هست رو open می کنید ، حالا اگه این ریسورس رو که فقط شامل فایل manifest هست رو ذخیره کنید با پسوند res ذخیره میشه و برای هر پروژه دیگه که خواستید ازش استفاده کنید کافیه Add File رو بزنید و فایل res رو بهش معرفی کنید.
بالاخره اشکال کا رو متوجه شدم:
مشکل فایل ریسورس من هست.به این عکسها دقت کنید.فایل ریسورس من با برای شما تفاوت داره:
فایل شما:
77218

اما فایل من:

77219

با فایل ریسورس شما جواب میده اما با مال من نه.
لطفا هر کسی میتونه جواب بده . خلی وقته گیر این مسئه ام..:ناراحت: