محبوبترینها
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
خرید بیمه، استعلام و مقایسه انواع بیمه درمان ✅?
پروازهای مشهد به دبی چه زمانی ارزان میشوند؟
تجربه غذاهای فرانسوی در قلب پاریس بهترین رستورانها و کافهها
دلایل زنگ زدن فلزات و روش های جلوگیری از آن
خرید بلیط چارتر هواپیمایی ماهان _ ماهان گشت
سیگنال در ترید چیست؟ بررسی انواع سیگنال در ترید
بهترین هدیه تولد برای متولدین زمستان: هدیههای کاربردی برای روزهای سرد
در خرید پارچه برزنتی به چه نکاتی باید توجه کنیم؟
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1827581688
چه طور یه عکس رو نمایش بدم ؟
واضح آرشیو وب فارسی:سایت ریسک: rezapassword19-01-2008, 09:15 AMدوستان میخوام وقتی رو کلید 1 کلیک شد یه عکس که مربوط به همون کلیده به مد ت 10 ثانیه ( البته این دیگه کار تایمره ) در مرکز صفحه نمایش د اده بشه و بعد محو بشه :18: راستی این کار رو میخوام در تعداد مثلا 140 تا کلید بکنم یه راحی رو بگید که قاط نزنم اگه میشه کد و مراحل رو برام بزارید تا یادم نرفته 2 کد نا قال رو میخوام 1 - ساخت چند نیو فولدر پشت هم ( c:aaadddfffggg) 2 - وقتی رو یه کلید کیلک شد محتویات اون کلید ( یه متنی که ما بهش از قبل دادیم ) در حافظه کلیپ برد کپ بشه ممنون یا علی:11: bad_boy_200719-01-2008, 10:50 PMدوستان میخوام وقتی رو کلید 1 کلیک شد یه عکس که مربوط به همون کلیده به مد ت 10 ثانیه ( البته این دیگه کار تایمره ) در مرکز صفحه نمایش د اده بشه و بعد محو بشه :18: راستی این کار رو میخوام در تعداد مثلا 140 تا کلید بکنم یه راحی رو بگید که قاط نزنم اگه میشه کد و مراحل رو برام بزارید تا یادم نرفته 2 کد نا قال رو میخوام 1 - ساخت چند نیو فولدر پشت هم ( c:aaadddfffggg) 2 - وقتی رو یه کلید کیلک شد محتویات اون کلید ( یه متنی که ما بهش از قبل دادیم ) در حافظه کلیپ برد کپ بشه ممنون یا علی:11: مخوای عکس آهسته نمایش داده بشه یا نه ؟ منضورم اینه که عکس از حالت شبه به حالت واضح نمایش داده بشه ؟؟ 1- System.IO.Directory.CreateDirectory("c:a") 2- System.Windows.Forms.Clipboard.GetText rezapassword20-01-2008, 10:39 AMبله دوست من ممنون از پاسخ گویی rezapassword20-01-2008, 07:12 PMپس چی شد ر فقا _H2_21-01-2008, 12:31 PMسلام واقعاً +GDI داخلی دات نت کارها را خیلی راحت و لذت بخش میکند ! برای رسم تصویر بدین شکل بهتر است از پارامتر gamma استفاده کنید و آنترا در تایمری تغییر دهید. مثلاً تابع زیر با فواصل 10 میلی ثانیه و پله های یک صدم تصویر را ترسیم میکند که در نهایت فکر کنم همان جلوه ای شود که شما میخواهید. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای تست یک فرم خالی بیاورید و رویداد Paint را چنین تکمیل کنید. (1-فقط جهات تست جلوه فوق 2-مسیر تصویر اصلاح شود.) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! بدیهی است که ریسمان اجرای فرمان تا پایان پیدا نکردن حلقه بلوکه میشود و باید در استفاده احتیاط کرد و در صورت نیاز از چند ریسمانی استفاده کرد تا با قفل شدن UI برخورد نکنیم. و هر کاری کنید تا روند ساده تر شود، مثلاً آرایه ای از Image ها ایجاد کنید تا هربار نیازی به لود و... نباشد. shalineh21-01-2008, 02:44 PM1 - ساخت چند نیو فولدر پشت هم ( c:aaadddfffggg) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 2 - وقتی رو یه کلید کیلک شد محتویات اون کلید ( یه متنی که ما بهش از قبل دادیم ) در حافظه کلیپ برد کپ بشه تگ (Tag) کنترل مورد نظر رو برابر متنی که میخوای تو کلیپ برد کپی بشه قرار بده و از تابع زیر استفاده کن. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! rezapassword21-01-2008, 05:28 PMسلام دوستان خیلی خلی ممنون اقا قبول دارم که تو برنامه نویسی خیلی خنگم شالینه جان کد د ومت رو نتونستم استفاده کنم باز ممنونم اگه کمکم کنی اچ تو جان کار پیچیده شد میشه یه برنماه نمونه بزاری همه شما نمیخوای به من حالی کین هم راحت تریو هم من بهتر میفهمم چی شد ممنون از شما م rezapassword22-01-2008, 10:25 PMاساتید من تا کی صبر کنم این کد ها رو از کجا پیدا کنم _H2_28-01-2008, 10:20 AMسلام دو روزپیش میخواستم نمونه ای بگذارم که اینترنتمان ترکید. ولی در کل برادر! بد نیست خودمان هم کمی روی کدها تست کنید و فعال باشید، تا همیشه منتظر دانلود پروژه باشید.....! نمونه جاری هیچ چیز خاصی ندارد، Copy و Paste شده همان کدهای فوق است، برای کپی متن هم از همان Tag استفاده شد که کاربر shalineh نمونه کدش را دادند... rapidshare.com/files/87211321/rezapassword.zip.html Ultimator28-01-2008, 11:50 PMبرای رسم تصویر بدین شکل بهتر است از پارامتر gamma استفاده کنید و آنترا در تایمری تغییر دهید. مثلاً تابع زیر با فواصل 10 میلی ثانیه و پله های یک صدم تصویر را ترسیم میکند که در نهایت فکر کنم همان جلوه ای شود که شما میخواهید با ارزه پوزش نميشه زياد رو اين روش حساب کرد چون اولا هميشه بايد تو paint event استفاده بشه و ثانيا کلی اجرا رو کند ميکنه کاش يتوری ميشد مثلا تو mouse over استفادش کرد _H2_30-01-2008, 10:13 AMسلام نیازی به Paint Event نیست، من فقط اصل دستورات را گفتم، محل استفاده به برنامه نویس مربوط میشود، شما از Mouse Over خوشتان می آید، خوب مشکل کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ مجدداً تاکید میکنم که کد جاری روش را نشان میدهد و در حالت واقعی بهتر است و یا باید از عملیات های غیر همزمان چند ریسمانی استفاده کرد. من اینطور فرض کردم که سروران گرامی و دوستان ارجمند فقط با ذات افکت ترسیم مشکل دارند.... جمیعاً موفق و پیروز باشید. Ultimator30-01-2008, 01:44 PMسلام شما تو Draw از Graphics در ( EventArgs (e رویداد paint استفاده کرديد همه ی Event ها که تو آرگشون Graphics ندارن ! يا دارن من نديدم ! دارن من نديدم ؟ خب اگه بخايم واسهMouseover استفادش کنيم Graphics که Optional هم نيست رو بايد از کجا بياريم ؟ ميشه لطفا راهنمايی کنيد ؟ ميدونين من چی ميخام ؟ دکمه های اينستالر Office 2007 رو ديدين ؟ ميريم روش با Fade رنگش عوض ميشه آبيه بعد طلايی ميشه ! در ضمن کلا عملیات های غیر همزمان چند ریسمانی نمیدونم چیه ! یه چیز دیگه ! اگه بخایم اطلاعات بیشتر کسب کنیم در مورد همين+GDI کجا بگردیم ؟ MSDN ? تو اين کتابها که من نگاه کردم چيزی نبود ممنونم shalineh30-01-2008, 02:20 PMهمه ی Event ها که تو آرگشون Graphics ندارن ! يا دارن من نديدم ! دارن من نديدم ؟ خب اگه بخايم واسهMouseover استفادش کنيم Graphics که Optional هم نيست رو بايد از کجا بياريم ؟ ميشه لطفا راهنمايی کنيد ؟ اکثر کنترلها دارای خاصیت گرافیک هستند ( با الگوی کلی Control.CreateGraphics ). جسارتا میخوام مطلبی رو عرض کنم: مشکل برخی از دوستان اینه که همه چیز رو آماده میخوان. در حالی که کسی که به برنامه نویسی علاقه داره باید دو چیز رو فراموش نکنه : 1- مطالعه 2- خلاقیت در بین همه کسانی که در تاپیک دات نت پست میدن، فقط H2 این شرایط رو داره و من به شخصه از پستهاشون لذت میبرم. راه حلی هم که برای سوال رضای عزیز ارائه دادن خوب نیست بلکه عالیه. Ultimator30-01-2008, 11:59 PMبا عرض شرمندگی ازين که به زحمتتون اندختم و ممنونم از اينکه راهنماييم کردين در ضمن من يه راهنمايی کوچولو خاستم تا فعلا کارم راه بيفته و متمعن باشيد هميشه دنبال چيزی که ميخام ميگردم ازين به بعد سعی ميکنم بيشتر بگردم و بيشتر و بيشتر و بيشتر مطلعه کنم ممنونم بابت توصيتون با نظر شما هم موافقم اقای H2 واقعا پستهاشون عالی و مفيدن و تو اين انجمن بی نظير _H2_02-02-2008, 10:44 AMسلام من پست دوستان را چهارشنبه آخر وقتی که انلاین بودم دیدم و تصمیم گرفتم گه پنجشنبه و جمعه نمونه کد بهتری درست کنم و سپس پاسخ دهم ولی طبق معمول فرصت اجرایی کردنش را نیافتم. :11::11::41: پس همیجا به توضیحاتی اکتفا میکنم. مشکل شی Graphics را که کاربر shalineh حل کردند. چند ریسمانی هم ساده است، شما کار را به یک ریسمان اجرایی دیگر میسپارید تا ریسمان اصلی برنامه آزاد بماند و به پیغام های ورودی کاربر پاسخ دهد. چند راه مرسوم را تیر وار بیان میکنم (متاسفانه و با عرض شرمندگی :11:) 1- استفاده مستقیم از کلاسس System.Threading.Thread کلاسس فوق را New کنید و با کمک متد Start ریسمان دوم را شروع کنید. (کلیه روشهای مرسوم دیگر بیان شده در زیر، خودشان در ذات از همین روش استفاده میکنند.) 2- استفاده از کامپونت System.ComponentModel.BackgroundWorker کافیست برای عمل مورد نظر آنرا روی فرمتان قرار دهیدو به کمک متد Start و رویدادهایش کار را به انجام برسانید. 3- استفاده از کلاسس System.Threading.ThreadPool و متد QueueUserWorkItem این کلاسس یک مخزنی از رشته ها را مدیریت میکند و کافیست متد مورد نظر را فراخانی کنید تا یکی از ریسمان های رزو شده برای کار مورد نظر فعال شود.. این کلاسس برای برنامه هایی که خیلی برای کارهای کوچک به ریسمان نیاز دارند، بسیار مفید و کار آمد است. 4- استفاده از یک مشتق Delegate و فراخانی متد BeginInvoke. اصولاً در بخش ها و کلاسسهای مختلف وقتی متدی با نام XXXX موجود باشد و نیز متد BeginXXXX و EndXXXX هم موجود باشند. متد اول برای اجرای عادی آن عمل است و دو متد بعدی برای اجرا در ریسمانی جدا. مثلاً در کلاسس System.IO.FileStream (برای خواندن و نوشتن در فایل) متد Write داریم در حالی که BeginWrite و EndWrite را هم داریم. تمام روشهای مرسوم و غیر مرسوم به طور مستقیم یا غیر مستقیم از همان کلاسس System.Threading.Thread استفاده میکنند. _H2_02-02-2008, 10:54 AMسلام مجدد در مورد دستورات گرافیکی +GDI من کتاب و منبع خاصی جز MSDN سراغ ندارم. :13: ولی خود من به شخصه از MSDN هم استفاده نکردم، چون اوضاع ساده تر و قابل فهم تر از آن بود که زحمت ارجاع به MSDN را به خودم بدهم. البته برای کسی که کمی زحمت تست کردن و حداقل دیدن متدهای کلاسس System.Drawing.Graphics را در View->Object Browse به خود بدهد :31: در مورد جلوه های زیبا هم باید بگویم در عمل کار با صرف دستوران Runtime خالص +GDI صورت نمیگیرد و برای جلوه های بهتر و قشنگ تر باید به تصاویر از قبل اماده bmp و png متصل شد و انرا با +GDI تلفیق کرد. مثلاً در مورد همین XP و ویستا، برای اغلب دکمه هایی که دوستان میبینند، چهار تصویر bmp یا png در داخل برنامه ذخیره شده ! یکی برای حالت عادی یکی برای حالت غیر فعال یکی برای زمانی که موس رویش امده یکی برای وقتی فشرده شده اگر کمی در رسورس های Xp و Vista سرک بکشید به وضوح میتوانید تصاویر چهار گانه را پیدا کنید. به شکل زیر دقت کنید: بخش اول تصویر بخش کنترل برنامه Vista-Photo Gallery در حالت عادی است. بخش دوم تصویر بخش کنترل برنامه Vista-Photo Gallery در حالت ماکسیموم شده است. بخش سوم، قسمتی از منبع اصلی فایلهای png داخل یک dll متعلق به برنامه فوق است. تحلیل: 1- تصاویر با فرمت png و نیمه شفاف انتخاب شده اند تا طرح زیر خود را انتقال دهند و بتوان الگو را برای حالت عادی و ماکسیموم تغییر داده (الگویی کف یا background هم در dll موجود بوده که من دیگر نیاوردمش) 2- تصاویر دکمه ها در چهار حالت مختلف ذخیره شده 3- بخش قاب دکمه ها با تلفیق جالب از تصاویر پیش ساخته png و دستورات +GDI ساخته شده اگر به پایین شکل دقت کنید میتوانید اجزای تشکیل دهنده فریم دور دکمه ها را مشاهده کنید. --- بخش نیمه گرد راست --- بخش نیمه گرد چپ --- بخش گرد وسط --- خط جدا کننده عمودی (در برنامه اصلی در سمت چپ دکمه Delete استفاده شده) --- بخش مدام تکرار شونده و پرکننده بین واحدها (دو خط ممتد موازی) http://www.h02.ir/Files/Vista-PhotoGallery-Res.png پیشنهاد میکنم دوستان برای درک بهتر تصاویر، آنها را Save و در Photoshop باز کنند !!! دوستانی که Vista دارند هم حتماً با کلیک راست و Preview روی یک تصویر نرم افزار فوق را از نزدیک ببینند. (حالت عادی- ماکسیموم - حرکت ماوس روی دکمه و فشردن و...) بهترین راه برای سرعت و زیبا ترین نتیجه، استفاده از تصاویر رندر شده و آماده و بعد استفاده از امکانات runtime داخل +GDI است. من به شخصه آنقدر در کد غرق میشوم که هیچگاه حال و حوصله اضافه کردن این تشکیلات را به برنامه های خودم ندارم. :10::10::10: _H2_02-02-2008, 10:59 AMسلام مجدد نمونه کد و سمپل های زیادی در سایت مایکروسافت وجود دارد، مثل "101 VB.NET Samples" در خود سایت مایکروسافت. ( نمونه #C هم موجود است). و سروران ارجمندی که VS2008 را نصب کرده اند هم میتوانند یک راست سری به مسیر زیر بزنند و از ده ها نمونه کد در ضمینه های مختلف استفاده کنند. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! (انها که 2008 را نصب کردند، این سمپل ها را از دست ندهند) Ultimator02-02-2008, 05:24 PMبا سلام خدمت همه ی دوستان عزيز مخصوصا استاد گرامی H2 جون بابت توضيحاتتون در مورد چند ریسمانی خيلی ممنونم سعی ميکنم يطور ازش استفاده کنم همینطور +GDI در مورد دکمه های گرافيکی مطمعنا من نميخاستم خود +GDI همه کار بکنه بلکه اين کاری که شما ميگين رو انجام دادم با يکم کد نويسی و تقيير دادن image يه Buttonتو event های مختلف مورد نیاز و هدف از استفاده ی +GDI دادن افکت fade با تغییر alpha بود که وقتی mouse روی button میره تصویر با افکت تغییر کنه که دارم سعیم رو میکنم که اینکارو بکنم. فقط يچيز ميمونه تغيير تصاوير با کد نويسی برای هر دکمه حجم برنامه رو خيلی زياد ميکنه چون واسه هر دکمه توی چهار پنجتا اونت بايد کد بنويسيم برای حل اين مشکل سعی کردم از user control استفاده کنم که به مشکلات زير خوردم و هنوز در پی راه حل براشون ميگردم اول توی user control يه button گزاشتم که به همون روش کد نويسی بری هر رويداد تصويرش عوض ميشه text دکمه هم با یه property تغییر میکنه حالا مشکلش اينه که وقتی روی دکمه کليک کنيم بديهيه که کدی که برای رويداد کليک يوزر کنترل نوشتيم اجرا نميشه دفعه ی بعد ازbutton استفاده نکردم و فقط برای بک گراند يوزر کنترل کد نوشتم ايندفه مشکل قبلی حل شد ولی به يه مشکل ديگه بر خوردم اينکه خود يوزر کنترل خاصيت تکست نداره که بخايم همه جا ازش استفاده کنيم و ديگه دکمه اي هم وجود نداره که تکست اون رو تغيير بديم ، يعنی برای هر دکمه بايد سه چهار تا تصوير جديد ايجاد کنيم که زياد منطقی نيست اينکارايی که کردم رو تو يه پروژه نوشتم گذاشتم ببينيد تا بهتر منظورم رو متوجه شيد اصلا غير از اينها روش ساده تر و منطقی تری وجود داره که بتونيم دکمه های گرافيکی درست کنيم ؟ اینم آدرسش : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با تشکر زیاد _H2_02-02-2008, 06:10 PMسلام پست را وارد کردم ولی به علت مشکلات املایی و تایپی و عدم فرصت تصحیح بیخیال شدم. !!!!!! و متاسفانه اینجا هم که نمیشود چیزی را Delete کرد! میبخشید. _H2_02-02-2008, 06:12 PMسلام با سلام خدمت همه ی دوستان عزيز مخصوصا استاد گرامی H2 جون بابت توضيحاتتون در مورد چند ریسمانی خيلی ممنونم سعی ميکنم يطور ازش استفاده کنم همینطور +GDI در مورد دکمه های گرافيکی مطمعنا من نميخاستم خود +GDI همه کار بکنه بلکه اين کاری که شما ميگين رو انجام دادم با يکم کد نويسی و تقيير دادن image يه Buttonتو event های مختلف مورد نیاز و هدف از استفاده ی +GDI دادن افکت fade با تغییر alpha بود که وقتی mouse روی button میره تصویر با افکت تغییر کنه که دارم سعیم رو میکنم که اینکارو بکنم. فقط يچيز ميمونه تغيير تصاوير با کد نويسی برای هر دکمه حجم برنامه رو خيلی زياد ميکنه چون واسه هر دکمه توی چهار پنجتا اونت بايد کد بنويسيم برای حل اين مشکل سعی کردم از user control استفاده کنم که به مشکلات زير خوردم و هنوز در پی راه حل براشون ميگردم اول توی user control يه button گزاشتم که به همون روش کد نويسی بری هر رويداد تصويرش عوض ميشه text دکمه هم با یه property تغییر میکنه حالا مشکلش اينه که وقتی روی دکمه کليک کنيم بديهيه که کدی که برای رويداد کليک يوزر کنترل نوشتيم اجرا نميشه دفعه ی بعد ازbutton استفاده نکردم و فقط برای بک گراند يوزر کنترل کد نوشتم ايندفه مشکل قبلی حل شد ولی به يه مشکل ديگه بر خوردم اينکه خود يوزر کنترل خاصيت تکست نداره که بخايم همه جا ازش استفاده کنيم و ديگه دکمه اي هم وجود نداره که تکست اون رو تغيير بديم ، يعنی برای هر دکمه بايد سه چهار تا تصوير جديد ايجاد کنيم که زياد منطقی نيست اينکارايی که کردم رو تو يه پروژه نوشتم گذاشتم ببينيد تا بهتر منظورم رو متوجه شيد اصلا غير از اينها روش ساده تر و منطقی تری وجود داره که بتونيم دکمه های گرافيکی درست کنيم ؟ اینم آدرسش : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با تشکر زیاد راه حل وراثت است، استفاده از UserControl برای این کار اصلاً منطقی و خوب نیست و به اندازه Copy و Paste کدها بد است. دیگر تا 2 شنبه آنلاین نیستم، سعی میکنم تا دو شنبه چیزی حاضر کنم و از شرمندگی دوستان در آییم. دیگر باید بروم، میبخشید و بای .:11::11::11::10: rezapassword03-02-2008, 08:27 PMسلام بر شما h2 عزیز اقا ممنون که برنامه نمونه گذاشتی اینو بگم که برنامه شما اصلا باز نمیشه چون یه فایلش رو نیست ( فایل اصل ) فقط تونستم بیلد کردش رو بینم که فهمیدم منظور من رو متوجه نشدید من نمیخوام به این صورت یه عکس رو نشون بدم می خوام وقتی موس رفت رو یه دکمه این عکس ( عکس مروط به اون دکمه نشون داده بشه ) البته به صورت بالا یه چیزی مثل tootip ولی از جنس عکس نه نوشته Ultimator04-02-2008, 12:07 AMسلام اقای رضای عزيز من تو اين پست ها برنامه ی نمونه اي از اقای h2 نديدم اگه منظورتون ان برنامه ايه که من گذاشتم با عرض معذرت هدفم جواب دادن به سوال شما نبود ، بلکه برای تکميل سوال خودم بود که اونم فقط کد هاش مهم بود که کلا مساله منتفی شد در ضمن جناب H2 جان عزيز از راهنماييتون خيلی خيلی ممنونم مثالهای Visual Studio 2008 در زمينه چند ريسمانی خيلی مفيد بود با تشکر زياد _H2_04-02-2008, 10:30 AMسلام می خوام وقتی موس رفت رو یه دکمه این عکس ( عکس مروط به اون دکمه نشون داده بشه ) البته به صورت بالا یه چیزی مثل tootip ولی از جنس عکس نه نوشته گرچه فرقی نمیکند و اصولش همان کدی است که اول گذاشتم و فقط باید در جای مناسب از آن استفاد کنید ولی سعی میکنم سمپلی تا چند روز آینده سرهم کنم. :11: فقط يچيز ميمونه تغيير تصاوير با کد نويسی برای هر دکمه حجم برنامه رو خيلی زياد ميکنه چون واسه هر دکمه توی چهار پنجتا اونت بايد کد بنويسيم برای حل اين مشکل سعی کردم از user control استفاده کنم که به مشکلات زير خوردم و هنوز در پی راه حل براشون ميگردم خوشبختانه اینبار وقت کردم و نمونه ای حاضر کردم. نکته جالب دیگری که در مورد روش کارایی گرافیکی XP و Vista یادم رفت خدمت اساتید عرض کنم آن است که تصاویر چهارگانه فوق الذکر در همه موارد به صورت یک تک تصویر ذخیره میشوند نه چهار تصویر ! یعنی یک تصویر کشیده که چهار تکه پشت سر هم دارد. در این نمونه دکمه جدیدی با نام GraphicButton و وراثت از Button تولید شده و تصاویر به همین شیوه استفاده شده و تصاویر موجود در پوشه Resources بی هیچ ادیت و دستکاری و حتی Rename ای، مستقیماً از منابع ویستا قرض گرفته شده !!!!! (تصاویر با دو ابعاد مختلف موجود بودند که من برای برنامه از نمونه بزرگ آن استفاده کردم.) کلاسس GraphicButton به راحتی و مستقلاً قابل استفاده در هر پروژه ای است گرچه سادگی بر کارآیی ترجیح داده شده و گرنه بیشک میشد چیزی خیلی قوی تر و کامل تر تولید کرد، ولی گفتم هم ساده تر باشد و در عوض دوستان متوجه بشوند بهتر است .... در وقت هم صرفه جویی :21: این کلاسس برای کار در Form فقط یک خصوصیت جدید به نام ImageStyle دارد که یک تصویر میگیرد و آنرا از محور افقی به چهار تصویر میشکند و برای حالات مختلف استفاده میکند و اگر تصویری به ImageStyle اش داده نشود هم مثل یک Button کاملاً عادی رفتار میکند. در اصل به علت وراثتف کلاسس GraphicButton همان کلاسس Button است و استفاده از این دو با هم هیچ فرقی ندارد، فقط GraphicButton خصوصیت اضافه ای به نام ImageStyle دارد. ضمناً به علت سادگی و عدم نیاز زیاد در شرایط استفاده از عکس، کد رسم Text را ننوشتم، در نتیجه وقتی ImageStyle پر باشد Text نشان داده نمیشود، دوستان میتوانند با تک خط ناقابلی قابلیت فوق را هم به کلاسس GraphicButton اضافه کنند. فکر کنم ذکر معایب تکرار کد و Copy و Paste مکرر کد برای هر دکمه لازم نباشد ولی فقط برخی معایب استفاده از UserControl را برای این کار بیان میکنم. 1- ساخت دو کنترلر (یکی UserControl و دیگری Button) و تخصیص دو hWnd از منابع ویندوز برای عمل فوق 2- اجبار به اضاه شدن کد برای تغییر سایز (چه دستی چه مدیریت دات نتی با Dock ) 3- موجود نبودن هیچ یک از خواص Button در طرح نهایی مثل: DialogResult AutoSizeMode PerformClick NotifyDefault ResetFlagsandPaint AutoEllipsis FlatAppearance FlatStyle IsDefault Text TextAlign TextImageRelation و... و... و... رویداد DoubleClick رویداد Click یعنی شما برای راه اندازی مجدد هر یک از قابلیت های فوق مجدداً باید فوج عظیمی از کدها را بنویسید که پیش از شما مایکروسافت به بهترین شکل ممکن نوشته! این هم نوعی تکرار کد و Copy و Paste است 4- شما در ذات یک UserControl ساخته اید نه Button، شاید خودتان و کاربر برنامه تان را گول بزنید ولی دات نت گول نمیخورد !!!! تعجب نکنیدف عرض میکنم! منظورم آن است که در خیلی از کدها و مشخصات کلاسس های دیگری که میخواهند از شما یک Button بگیرید UserControl شما را که به ظاهر یک Button است نخواهند پذیرفت. مثلاً مثلاً خصویت AcceptButton در Form که مشخص میکند کدام دکمه پیش فرض کلید Enter باشد، UserControl شما را به عنوان ورودی نخواهد پذیرفت، چون وراثتی از Usercontrol است و به کلاسس button کست یا قالب ریزی نمیشود. نمونه جاری گرچه کمی شبیه Vista-Photo Gallery است ولی شامل هیچ کدی برای کلیک دکمه ها نیست، اگر خواستید رویدادها را کد نویسی کنید. نمونه کد با نسخه 2005 همانگ است و دوستانی هم که فقط میخواهند exe نهایی را ببینند میتوانند انرا از binRelease پیدا و اجرا کنند. چون کلاسس GraphicButton در همان جایی که تولید شده استفاده هم دارد میشود، امکان دارد در صورت خطا در کدهای دیگر و ناتوانی VS در کامپایل زودهنگام کدها، وقتی Form را برای ادامه طراحی باز میکنید با خطا روبرو شوید و محتویات را نبینید، اصلاً نگران نشوید، Form را ببندید و خطا ها را که مانع کامپایل هستند رفع کنید و پروژه را خودتان با فرمان Solution->Rebuild Solution کامپایل کنید . !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! موفق و پیروز باشید، Ultimator04-02-2008, 02:30 PMبا سلام جناب H2 عزيز اول ميخاستم ازتون تشکر کنم که مشکلاتو حل کرديد همون راهی رو به کار بردين که من دنبالش بودم و ميخاستم از user control بهش برسم که نشد و ميخام بگم راه حلتون عاليه ! مرسی! در ضمن يه چيزايی هست که ميخاستم بگم ولی فرصت نشد بعدا ميگم فقط يچيزی که ميمونه اينه که شما کلاسی که ايجاد کردين فکر کنم با 2 Net. سازگار باشه ولی پروژتون فقط تو Visual studio 2008 باز ميشه اگه Visual Studio 2005 دارين نمونه رو با اون ايجاد کنيد که بقيه سرورانی که نسخه 2008 ندارن هم بتونن ازش استفاده کنن اگه ندارين بگين اينکارو بکنم باز هم خيلی خيلی ممنونم از شما که با راهنماييا� سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3538]
-
گوناگون
پربازدیدترینها