بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > زبان های برنامه نویسی Programming

زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 08-10-2011
ali_zangeneh آواتار ها
ali_zangeneh ali_zangeneh آنلاین نیست.
کاربر عادی
 
تاریخ عضویت: Feb 2010
محل سکونت: کرمانشاه
نوشته ها: 50
سپاسها: : 54

31 سپاس در 21 نوشته ایشان در یکماه اخیر
ali_zangeneh به Yahoo ارسال پیام
Talking برنامه های پر محتوا با Visual C#.NET

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




  #2  
قدیمی 08-14-2011
ali_zangeneh آواتار ها
ali_zangeneh ali_zangeneh آنلاین نیست.
کاربر عادی
 
تاریخ عضویت: Feb 2010
محل سکونت: کرمانشاه
نوشته ها: 50
سپاسها: : 54

31 سپاس در 21 نوشته ایشان در یکماه اخیر
ali_zangeneh به Yahoo ارسال پیام
Wink برنامه تقویم شمسی کامل ویندوزی با سورس کامل و فایل اجرایی

در این بخش قصد دارم برنامه ایی رو به زبان ویژوال سیشارپ دات نت و تحت چارچوب دات نت فریم وورک4 بنویسم که روز و تاریخ شمسی رو مثل شکل زیر در سیستم عامل ویندوز به نمایش در بیاره










برای این منظور شما احتیاج دارید به متدی که روزهای هفته جاری سییتم رو به روزهای هفته شمسی تبدیل بکنه و متدی که تقویم میلادی جاری رو هم به تقویم میلادی تبدیل بکنه.که من برای استفاده از این قسمت از یک dll خارجی که دربخش تقویم و روز هفته فارسی قبلا براتون اونو گذاشتم استفاده کردم که با فراخوانی دو متد از اون میتونیم روز و تاریخ جاری سیستم رو داشته باشیم.

فقط لازمه فایل DLL رو به برنامه الحاق کنید برای این منظور
1=اول در ویژوال استودیو روی سلوشن اکسپلورر روی نام پروژه راست کلیک کرده و add refrence رو میزنید
2=مسیر خود فایل DLL رو به ویزارد بدید ودیگه کار تمومه.

حالا در قسمت namespace فرم برنامه عبارت
کد:
using farhaniPersianDate;


حالا با نوشتن دستور زیر در زبان سیشارپ از کلاس cdate موجود در dll شما یک obj(شی) میسازید که بویسله فراخوانی متد هایی از اون شی عملیات مورد نظر رو انجام بدیم.
کد:
cDate shamc = new cDate();


و ما به دو تا شی دات نتی به نام های notifyicon و contextmenu احتیاج داریم که از notifyicon برای نمایش برنامه بصورت ایکون مانند در ترای بار(کنار ساعت)و از context menu برای منویی که موقع کلیک راست کردن بروی ایکن برنامه در ترای بار باید نمایش داده شود.
مثل شکل زیر:











حالا ما یک فرم اصلی داریم که در زمان اجرای برنامه نمایش داده میشه .خب نباید در این برنامه این فرم در ابتدا نمایش داده بشه بلکه وقتی بروی ایکون برنامه در ترای بار راست کلیک کردید و گزینه درباره... رو زدید باید این فرم که نام نرم افزار و تهیه کننده اش (یعنی منو توی خودش داره) نشون داده بشه مثل شکل زیر







اول از همه خاصیت های مورد استفاده در فرم رو بگم که چطور شد فرم برنامه اینجوری شد.من از خاصیت های زیر استفاده کردم و در اخر هم توضیح میدم که هرکدوم چی هستند و چی کار میکنند.
1:window state=minimized
2:top most=true
3:start position=center screen
4:show in taskbar=false
5;opacity=90%
6:form border style=none
خب حالا توضیح اینکه این صفات چی هستند و چی کار میکنند.
توضیح 1و4:window state در واقع نشان دهنده این است که وقتی فرم ما اجرا شد برای بار اول در چه وضعیتی قرار بگیرد که با انتساب این گزینه به حالت minimize وقتی برنامه اجرا میشه از متد main و میرسه به دستور زیر
کد:
 Application.Run(new Taghvim_shamsi());
و فرم رو اجرا میکنه فرم ما در حالت مینیمیز شده یا کمینه است که در نوار وظیفه یا taskbar نشون داده میشه ولی با خاصیت چهارم ما اومدیم نشون دادن برنامه در نوار وظیفه رو هم غیر فعال کردیم که در کل وقتی دستور نمایش داده شد فرم نمایش داده شده و با زدن دکمه بستن فرم فرم با دستور hide مخفی بشه طوری که دیده نشه.
توضیح خاصیت2:این خاصیت با True شدنش باعث این میشه مه فرم مورد نظر ما همیشه بالا ترین فرم اجرا شده در جلوی نظر کاربر باشه و دیگه به پشت فرم برنامه های دیگه نره.
توضیح خاصیت3:این خاصیت باعث میشه که زمانی که فرم ما اجرا شد در وسط صفحه همیشه اجرا بشه و با تغیر موقعیت و خارج شدن موقعیت خودشو حفظ نکنه
توضیح خاصیت 5:خاصیت OPACITY در واقع تعیین کننده میزان کدری فرم است که اگر به صورت پیش فرض میزان 100 درصد را داشته باشد فرم کاملا کدر بوده و شفاف نیست که پشتش قابل دیدن باشد.پس میزان 90 درصد باعث میشه که کدری فرم 90 درصد باشه و به میزان 10 درصد از بصورت شفاف از پشت فرم معلوم باشد.
حالا میریم سراغ خاصیت های شی داده ایی NOTIFYICON یا بخش قرار گیرنده در قسمت ترای بار.
شی NOTIFYICON یک شی داده اییه که خایت های زیر رو به ترتیب در بخش خصوصیاتش این خاصیت ها رو ست میکنیم.

1:VISIBLE=TRUE
2:ICON=CHOOSE A ICON FILE
3:CONTEXT MENU STRIP=CONTEXT MENU STRIP 1
توضیح1:این خاصیت برای نمایش و عدم نمایش یک شی دات نت به کار میرود که true شدن ان به منزله صدور مجوز نمایش به کاربر در برنامه نهایی میباشد.
توضیح2:همانطور که در شکل ابتدایی میبینید هر برنامه که بخواهد در ترای بار نمایش داده بشود نیاز دارد که یک ایکون داشته باشد این خاصیت درواقع مسیر دهی کردن به ایکون برنامه است.
توضیح3:درواقع شما با کلیک راست کردن بروی ایکون برنامه در ترای بار منویی را مطابق شکل زیر میبینید که به انContext menu یا منوی زمینه میگویند و یک شی دات نتی بوده و میتوان برای ان منوهایی طراحی کرد با کشیدن ابتدایی ان در برنامه و انتخاب کردن و ایجاد منو و با دابل کلیک کردن بروی ایتم های ان میتوان برای ایتم های منویی اش کد نوشت.حالا در قسمت3 ما باید نام contextmenu ایجاد شده برای این بخش را به notify icon بدهیم که با کلیک راست کردن کاربر این منو به نمایش در بیاید .







حالا برای نوشتن کد این برنامه این استراتژی رو به ما پیش میگیریم که اول برنامه که اجرا میشه فرم نام تهیه کننده و... به حالت minimize به نمایش در میاد و با دوبار کلیک کردن بروی ایکون برنامه یا کلیک راست کردن و زدن گزینه درباره فرم نام تهیه کننده و روز و تاریخ جاری به نمایش در میاد و اما میتوان با قرار دادن چند لحظه ایی ماوس بروی ایکون برنامه هم به صورت بالون مانند نام و تاریخ جاری سیستم را به طور شمسی دید.
خب در ابتدا برنامه باید مختصری راجع به event ها یا رویداد ها توضیح بدم.
ببینید شما فرض کنید که من مشترک یه هفته نامه ایی شدم و هفته یک بار روز سه شنبه هفته نامه به من تحویل داده میشه.
خب این اشتراک من درواقع یک ثبت نامی ابتدا انجام شده و با چاپ شدن یک نسخه جدید به دست من میرسه و من مطلع میشم از انتشار مجله
حالا برگردیم به برنامه نویسی فرض کنید یک برنامه ایی شما نوشتید من میخواید بعد از وقوع یک اتفاق خاص به شما اطلاع داده بشه تا شمایه کار خاصی رو (متدی را فراخوانی کنید)انجام بدید.
رویداد ها هم همین طور هستند مثلا فرض کنید روی یک فرم ویندوزی شما کلیک راست کنید و بازدنproperties و انتخاب رویداد ها کلیه رویدادهای پیش فرض یک فرم رو میبینید. مثل شکل های زیر














مثلا رویداد page_load این رویداد درواقع یک متده که شما با کلیک کردن روی ایتم اون در پنجره رویداد های یک فرم باعث میشید که ویژوال استودیو یک متدی رو به کد فرم شما اضافه بکنه که با لود شدن فرم اولین چیزی که اتفاق می افته کد داخل فرم شما باشه.
مثلافرض کنید تویform _load بنویسید
کد:
MessageBox.Show("سلام");
این یعنی اولین چیزی که در اجرا شدن فرم شما اتفاق میافته فراخوانی رویداد page-load فرم شماست که باعث میشه توی یک مسج باکس عبارت سلام به نمایش در بیاد
توجه:همه کامپوننت های دات نتی رویداد بخصوص خودشان را دارند(البته میتوان رویداد های دیگری با استفاده ازdelegate ها برایشان نوشت. علاوه بررویداد های پیش فرض)
حالا ما در برنامه خودمان در متد لود فرم این کد رو قرار داده ایم(این کد چیه و چیکار میکنه در ادامه)

کد:
 cDate shamc = new cDate();
کد:
  
           string my_date = shamc.Year + @"\" + shamc.Month + @"\" + shamc.Day + "  " + shamc.DayName;
  
           notifyIcon1.Text = my_date;
  
           label4.Text = my_date;
در اولین خط این کد ما اومدیم از شی کلاس cdate که داخل dll بود یک شی ساختیم(تا بتونیم باهاش کار کنیم دیگه)
بعد درخط دوم متد های shams.year رشته سال شمسی و همین طور تاshamc.day همین طور روز شمسی رو برمیگردونند و با جدا کننده و منتسب اش میکنند به رشته my_date حالا خاصیت تکستnotifyicon که همون متن بالونی هست که با نگهداشتن ماوس روش میبینیم میشه همین روز تاریخ شمسی و در اخر هم label موجود در فرم برنامه هم میشه همین رشته تقویم.
تموم شد این اصل برنامه.
دیگه میمونه اینکه چطور با زدن خروج از برنامه خارج بشیم.
ما دو راه حل داریم
1: استفاده از دستور
کد:
this.clos();
2راه حل من)
استفائه از دستور
کد:
 Application.Exit();
کد:

خب فرق این دوتا وقتی که برنامه ایی مثل برنامه ما از یک فرم تشکیل شده چیزی نیست اما اگه برنامه ایی از چندین فرم تشکیل شده باشه فرق هست بین بست فرم جاری(دستور1)و بستن برنامه(دستور2)پس حواستون به استفاده از این دو دستور باشه
بعد برای اینکه با زدن گزینه درباره فرم نشون داده بشه شما بایستی کد زیر رو بنویسید تو گزینه درباره موجود در contextmenu
کد:
this.Show();
کد:
  
            this.WindowState = FormWindowState.Normal;
که با اولین دستور فرم نمایش داده میشه و با دومی از حالت مینیمیز در میاد.و الا بدون دستور دوم نمیشه و بدون دستور اول هم میشه (هر دو دستور لازمه چون دو کار باید انجام بدیم)
و نکته اخر اینکه در روداد کلیک click دکمه بستن در فرم فرم رو نباید با
کد:
this.clos();
بست بلکه باید اونو از حالت نمایش فقط خارج کرد اونم با دستور زیر
کد:
this.Hide();
کد:

نکته:این this چیه که اقای زنگنه شما همش استفاده میکنید؟
این this درواقع اشاره گر به کلاس جاری(فرم جاری-که فرم ها در سیشارپ کلاس هستند) میباشد.و به جاش میشه نام خود فرم رو برد.
خب برنامه نویسان عزیز خسته نباشید امیدوارم از برنامه خوشتون بیاد
اینک مستقیم دانلود سورس و فایل اجرایی برنامه رو براتون میفرستم
اول ببخشید که تاپیک رو نوشتم و برنامه توضیحاتش اماده شد
و دوما به خاطر ضعف در بیان مطالب

میتونید سوالات نظرات پیشنهادات انتقادات و برنامه های خودتونو برای بالا بردن سواد و گسترش دانش متن باز که من عاشقشم) در این تاپیک بذارید تا منو بقیه علاقه مندان هم استفاده بکنیم.
ممنون و شبتون بخیر




http://zangeneh90.persiangig.com/Source/taghvim/taghvim.7z

ویرایش توسط ali_zangeneh : 08-14-2011 در ساعت 01:29 AM
پاسخ با نقل قول
کاربران زیر از ali_zangeneh به خاطر پست مفیدش تشکر کرده اند :
پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 07:12 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها