جدیدترین نسخه از مجموعه XCalendar را می توانید از آدرس زیر دریافت کنید:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
جدیدترین نسخه از مجموعه XCalendar را می توانید از آدرس زیر دریافت کنید:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by adgteq; 06-08-2009 at 21:15. دليل: نسخه جدید
این هم چند کنترل انتخاب تاریخ از مجموعه TMS Planner سازگار شده با تقویم ها و رویدادهای XCalendar و با پشتیبانی از BiDiMode شامل:
TPlannerCalendar
TPlannerDatePicker
TPlannerMaskDatePicker
TDBPlannerCalendar
TDBPlannerDatePicker
TPlannerDBDatePicker
TPlannerDBMaskDatePicker
یک تصویر نمونه از TPlannerCalendar:
لینک دریافت مجموعه این کنترل ها به همراه XCalendar 1.1.1: (حجم 150 کیلوبایت)
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by adgteq; 06-08-2009 at 21:16. دليل: به روز رسانی
این هم یک توضیح کلی راجع به این مجموعه: (البته در فایل readme کاملترش هست)
XCalendar با الهام از کلاس Calendar موجود در دات نت اما برای دلفی نوشته شده تا بتوان از تاریخ/زمان های TDateTime دلفی در گاهشماری های گوناگون استفاده کرد. همانطور که میدانید نوع TDateTime در دلفی یک عدد اعشاری است که زمان سپری شده از یک زمان خاص را نشان میدهد با به طور دقیقتر: قسمت صحیح آن تعداد روزهای گذشته از تاریخ 30 دسامبر 1899 میلادی (مثبت یا منفی) و قسمت اعشاری آن بیانگر کسری از روز 24 ساعته است که سپری شده.
هر تقویم (گاهشماری) زمان را با قوانین خود به واحدهایی مثل سال و ماه و روز تقسیم میکند. بنابراین میتوان مقادیر TDateTime را به واحدهای هر تقویم decode کرد و تاریخ های هر تقویم را نیز میتوان به نوع TDateTime، انکود کرد.
تقویم های این مجموعه همگی از کلاس TXCalendar مشتق شده اند که متدهای آن همنام توابع موجود در SysUtils و DateUtils هستند تا کارهایی از قبیل decode کردن یا فرمت کردن تاریخ، محاسبه شماره هفته در سال، محاسبه آخرین جمعه ماه، افزودن 3 روز به یک تاریخ و ... را انجام دهند. تنها کاری که تقویم های مشتق شده باید انجام دهند این است که چند متد abstract برای encode و decode تاریخ و محاسبه سالهای کبیسه و تعداد روز در سالها و ماهها را override کنند.
مثال:
TXCalendar را از TComponent مشتق کرده ام تا بتوان تقویم ها را روی فرم قرار داد. خاصیت FormatSettings برای تنظیم نام ماه ها و DateSeparator و دیگر ثوابت مربوط به کارهای رشته ای هست. خاصیت WeekStartDay روز آغاز هفته و خاصیت WeekRule قانون شمارش هفته ها را مشخص می کند.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فعلا تقویم های میلادی، هجری شمسی با دوره 33 ساله، هجری شمسی با محاسبات نجومی، هجری قمری با دوره 30 ساله و هجری قمری با قابلیت تطبیق با داده های مشاهده شده هلالی انجام شده اند.
برای تبدیل تاریخ از یک تقویم به تقویم دیگر باید آنرا با کامپوننت تقویم اول encode کنید و مقدار حاصل را با کامپوننت تقویم دوم decode کنید.
فیلد های دیتابیس سازگار با XCalendar هم در پنجره New Field اضافه میشوند که با ست کردن خاصیت XCalendar آنها میتوان تقویم مورد نظر برای نمایش و گرفتن مقدار را انتخاب کرد.
رویدادهای سالانه و نجومی هم از کلاس TCustomXCalendarEvents مشتق شده اند که میتوان وقوع های آنها را بین دو تاریخ با متد FindIntervalEvents بدست آورد:
رویدادهای سالانه در کامپوننت TXCalendarEvents بصورت یک Collection از رویدادها هست که با دابل کلیک روی کامپوننت میتوانید آنها را ویرایش کنید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کنترل های انتخاب تاریخ هم به سادگی با ست کردن خاصیت XCalendar به شکل تقویم مورد نظر تبدیل میشوند و با ست کردن خاصیت XCalendarEvents رویدادهای کامپوننت مورد نظر را مشخص می کنند. کنترل اصلی TPlannerCalendar است که در کامپوننت های دیگر با کلیک روی دکمه شان یک instance از آن نمایش داده میشود که خواصش از طریق خاصیت Calendar قابل دسترسی است.
چند دمو هم در مجموعه موجود هست.
Last edited by adgteq; 28-08-2008 at 23:52.
با تشکر ...آقا این 150 کیلوبایت چیزی بود که تو Rapidshare آپلود کردین؟لینک دریافت مجموعه این کنترل ها به همراه XCalendar 1.0.1: (حجم 150 کیلوبایت)
Last edited by SadeghPM; 12-10-2008 at 18:22. دليل: adgteq Request
سلام
این هم لینک جدید:
متاسفانه در این فروم نمیشه فایل آپلود کرد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by adgteq; 06-11-2008 at 19:15.
آقا من این کامپونت رو نصب کردم ..یه 1 روزی هم کار کرد ..بعدش هم به کلی Delphi رو بهم ریخت !!!!
سلام
لطفا نسخه دلفی و مشکل به وجود آمده را دقیقتر توضیح بدید.
Last edited by adgteq; 06-11-2008 at 19:16.
با سلامfield form1.hijriCalendar1 does not have a corresponding component. Remove the declaration? Yes no cancel
چرا موقع اجرا کردن برنامه های تقویم (مثل همین تقویم ) خطای زیر ظاهر می شه
[Fatal Error] Unit1.pas(7): File not found: 'xcalClass.dcu'
که اگر no رو بزنم خطای زیر می یاد
field form1.PersianCalendar1 does not have a corresponding component. Remove the declaration? Yes no cancel
و با no زدن این باز خطای دیگه ای می یاد
field form1.GregorianCalendar1 does not have a corresponding component. Remove the declaration? Yes no cancel
و روی فرم می ره و خطای زیر رو می نویسه
اگه از همون ابتدا هم yes رو بزنم و همه خطاهای بالا بازم می یاد و با yes زدن روی فرم می ره و پیغام زیر رو می ده[Fatal Error] Unit1.pas(7): File not found: 'xcalClass.dcu'
و من اصلا حالت اجرای تقویم رو نمی تونم ببینم و برنامه تقویم اصلا اجرا نمی شه
برای تقویم های دیگه هم همچین پیغام هایی می یاد
یک نفر به سوالم جواب بده دیگه خسته شدم هی اومدم و دیدم هنوز کسی جواب نداده کسی نیست ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)