-
Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
نسخه 1.1.1 از مجموعه XCalendar را می توانید از آدرس زیر دریافت کنید:
http://sourceforge.net/projects/xcalendar/files/
شامل:
- تقویم های مشتق شده از کلاس پایه TXCalendar (شبیه کلاس Calendar دات نت) که متدهای آن همنام توابع موجود در SysUtils و DateUtils هستند بصورت کامپوننت:
TGregorianCalendar
TPersianCalendar
TAstroPersianCalendar
THijriCalendar
TObservedHijriCalendar
- فیلد های تاریخ-زمان دیتابیس با امکان انتخاب تقویم
- محاسبه رویدادهای سالانه و نجومی
خوشحال می شوم که از نظرات شما بهره مند شوم
-
1 ضمیمه
نقل قول: XCalendar – مجموعه تقویم عمومی برای دلفی
این هم چند کنترل انتخاب تاریخ از مجموعه TMS Planner سازگار شده با تقویم ها و رویدادهای XCalendar و با پشتیبانی از BiDiMode شامل:
TPlannerCalendar
TPlannerDatePicker
TPlannerMaskDatePicker
TDBPlannerCalendar
TDBPlannerDatePicker
TPlannerDBDatePicker
TPlannerDBMaskDatePicker
یک تصویر نمونه از TPlannerCalendar:
http://i36.tinypic.com/2cps2ti.gif
مجموعه کامل XCalendar 1.1.1 همراه با کنترلهای TMS Planner سازگار شده با آن را به این پست اتچ کرده ام. پکیج های لازم برای نصب رو هم اضافه کرده ام (با تشکر از مهران). البته متاسفانه روی دلفی 2009 قابل نصب نیست.
این هم لینک رپید شیرشه:
http://rapidshare.com/files/264440133/XCalPlanner_090806.rar
توجه: آخرین به روز رسانی این پست پس از پست شماره 48 انجام شده است
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
خوشحال می شوم که از نظرات شما بهره مند شوم
خيلي خوبه .. فقط اگه يك پكيج هم براش درست كني تا راحت تر نصب بشه فكر كنم بهتر باشه ...
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
روش ساختن پکیج رو در فایل readme توضیح دادم. نمی تونستم برای همه نسخه های دلفی پکیج بسازم. امیدوارم در نصب مشکلی نداشته باشید.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
من پكيج را مي سازم ولي خطا مي ده و بعضي از فايلها را مي گه ندارم
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
نوشته شده توسط
دنیای دلفی
من پكيج را مي سازم ولي خطا مي ده و بعضي از فايلها را مي گه ندارم
نسخه دلفی شما چیست؟ آیا فایل های Pas را درست دریافت کرده اید؟
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
دلفي 7 بله كمبود يك سري فايل پاس را مي گيره كه اصلا توي پروژه نيستشون ميشه همينجا آپلود كنيد
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
برای نصب XCalendar در دلفی 6 به بالا باید پکیج DESIGNIDE را به لیست Requires اضافه کنید.
البته در فایل Install.txt کامل تر توضیح داده ام.
فکر نمی کنم اگر این کار را بکنید فایل pas دیگری نیاز داشته باشد.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
بله. من هم با همین نسخه کار میکنم و مشکلی نداشتم. مرسی جناب adgteq.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
راستی یه سوال در مورد کنترلهای TMS ای که سازگار با این تقویم قرار داده اید. آیا متدی خاص وجود داره که باید اون رو بر حسب اینکه از چه نوع تقویمی (Persian، ...) استفاده کنیم به این کنترل ها باید اختصاص بدیم یا نه؟ اینکه نوع تقویم کنترل رو تغییر بدیم.
سوال دوم. این تقویم مشکلی با استثناء هایی مثل سال کبیسه نداره؟
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
1. دو property اضافه شده: XCalendar و XCalendarEvents که می توانید آنها را به کامپوننت تقویم و/یا رویداد دلخواه که قبلا روی فرم قرار داده اید ست کنید (تقویم ها و رویدادها را به صورت کامپوننت غیر بصری نوشته ام که صد البته در زمان اجرا هم قابل ایجاد هستند)
2. در مورد تقویم یک کمی تحقیق کردم. TPersianCalendar از دوره های 33 ساله (جلالی) استفاده می کنه که دقیقترین روش دوره ای برای فاصله نگرفتن آغاز سال از زمان اعتدال فروردین هست. TAstroPersianCalendar هم از قانون نجومی مصوب 1304 استفاده می کنه: اگر زمان اعتدال فروردین قبل از ظهر شرعی باشه همان روز روز اول ساله و اگر بعد از ظهر شرعی باشه روز بعد روز اول سال میشه. البته باید طول جغرافیایی را برای محاسبه زمان ظهر به آن داد. (این دو روش در حال حاضر تفاوتی در سالهای کبیسه با هم ندارند)
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
ضمن تشكر
لطفا در مورد لينك با عناصر مربوط به تاريخ مثل MonthCalendar1 با اين كمپوننت ميشه توضيح بديد اگه يك مثال هم اتچ بشه كه عالي ميشه
لينك rapidshare هم چون توي شركت ما بسته شده نميتونم دانلود كنم با توجه به حجم كمي كه داره لطفا تو همين تاپيك اتچ كنيد
ممنون
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
این هم یک توضیح کلی راجع به این مجموعه: (البته در فایل readme کاملترش هست)
XCalendar با الهام از کلاس Calendar موجود در دات نت اما برای دلفی نوشته شده تا بتوان از تاریخ/زمان های TDateTime دلفی در گاهشماری های گوناگون استفاده کرد. همانطور که میدانید نوع TDateTime در دلفی یک عدد اعشاری (Double) است که زمان سپری شده از یک زمان خاص را نشان میدهد با به طور دقیقتر: قسمت صحیح آن تعداد روزهای گذشته از تاریخ 30 دسامبر 1899 میلادی (مثبت یا منفی) و قسمت اعشاری آن بیانگر کسری از روز 24 ساعته است که سپری شده.
هر تقویم (گاهشماری) زمان را با قوانین خود به واحدهایی مثل سال و ماه و روز تقسیم میکند. بنابراین میتوان مقادیر TDateTime را به واحدهای هر تقویم decode کرد و تاریخ های هر تقویم را نیز میتوان به نوع encode ،TDateTime کرد.
تقویم های این مجموعه همگی از کلاس TXCalendar مشتق شده اند که متدهای آن همنام توابع موجود در SysUtils و DateUtils هستند تا کارهایی از قبیل decode کردن یا فرمت کردن تاریخ، محاسبه شماره هفته در سال، محاسبه آخرین جمعه ماه، افزودن 3 روز به یک تاریخ و ... را انجام دهند. تنها کاری که تقویم های مشتق شده باید انجام دهند این است که چند متد abstract برای encode و decode تاریخ و محاسبه سالهای کبیسه و تعداد روز در سالها و ماهها را override کنند.
مثال:
dt := GregoianCalendar1.EncodeDate(2000, 1, 1);
w := HijriCalendar1.WeekOfTheYear(dt);
ShowMessage(
PersianCalendar1.FormatDateTime('dddd d mmmm yyyy hh:nn AM/PM', Now));
TXCalendar را از TComponent مشتق کرده ام تا بتوان تقویم ها را روی فرم قرار داد. خاصیت FormatSettings برای تنظیم نام ماه ها و DateSeparator و دیگر ثوابت مربوط به کارهای رشته ای هست. خاصیت WeekStartDay روز آغاز هفته و خاصیت WeekRule قانون شمارش هفته ها را مشخص می کند.
فعلا تقویم های میلادی، هجری شمسی با دوره 33 ساله، هجری شمسی با محاسبات نجومی، هجری قمری با دوره 30 ساله و هجری قمری با قابلیت تطبیق با داده های مشاهده شده هلالی انجام شده اند.
برای تبدیل تاریخ از یک تقویم به تقویم دیگر باید آنرا با کامپوننت تقویم اول encode کنید و مقدار حاصل را با کامپوننت تقویم دوم decode کنید.
فیلد های دیتابیس سازگار با XCalendar هم در پنجره New Field اضافه میشوند که با ست کردن خاصیت XCalendar آنها میتوان تقویم مورد نظر برای نمایش و گرفتن مقدار را انتخاب کرد.
رویدادهای سالانه و نجومی هم از کلاس TCustomXCalendarEvents مشتق شده اند که میتوان وقوع های آنها را بین دو تاریخ با متد FindIntervalEvents بدست آورد:
var
EOL: TXCalEventOccurenceList;
dt1, dt2: TDateTime;
i: Integer;
begin
dt1 := Date;
dt2 := dt1 + 7;
EOL := TXCalEventOccurenceList.Create;
try
XCalendarEvents1.FindIntervalEvents(dt1, dt2, EOL);
EOL.SortByDate;
for i := 0 to EOL.Count - 1 do
ShowMessage(PersianCalendar1.DateToStr(EOL[i].Date) + ' ' + EOL[i].DisplayText);
finally
EOL.Free;
end;
end;
رویدادهای سالانه در کامپوننت TXCalendarEvents بصورت یک Collection از رویدادها هست که با دابل کلیک روی کامپوننت میتوانید آنها را ویرایش کنید.
کنترل های انتخاب تاریخ هم به سادگی با ست کردن خاصیت XCalendar به شکل تقویم مورد نظر تبدیل میشوند و با ست کردن خاصیت XCalendarEvents رویدادهای کامپوننت مورد نظر را مشخص می کنند. کنترل اصلی TPlannerCalendar است که در کامپوننت های دیگر با کلیک روی دکمه شان یک instance از آن نمایش داده میشود که خواصش از طریق خاصیت Calendar قابل دسترسی است.
چند دمو هم در مجموعه موجود هست.
التماس دعا
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلام
لطفاً روش ويرايش اتفاقات و ثبت آن را هم توضيح دهيد.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
البته این هم در فایل readme هست (بخش 3.1). کامپوننت TXCalendarEvents برای محاسبه وقوع رویدادهای سالانه کلی هست. خاصیت Events یک Collection از TXCalEventItem ها هست که هر کدام یک رویداد سالانه جداگانه را بوسیله خواص خود توصیف میکنند. معمولا باید پنج خاصیت XCalendar و Month و Day و Title و IsVacation ست شوند. اما در حالت کلی خواصی از TXCalEventItem ها که باید ست شوند بصورت زیر است:
1. XCalendar: تقویمی که وقوع این رویداد بر حسب آن محاسبه میشود. که باید به یک کامپوننت تقویم اشاره کند.
2. RuleType: نوع قانون برای محاسبه وقوع این رویداد. انواع زیر قابل انتخاب هستند:rtExactDay: یک روز مشخص از یک ماه مشخص در هر سال
rtNthDayOfWeekInMonth: قوانینی مانند سومین دوشنبه فوریه یا آخرین جمعه ماه رمضان
rtNthDayOfWeekAfterADay: قوانینی مانند دومین دوشنبه قبل از 25 می
rtNearestDayOfWeek: قوانینی مانند نزدیک ترین دوشنبه به 12 جولای
rtCustomRule: قانون دلخواه که در OnCustomRule کامپوننت TXCalendarEvents مربوطه تعریف میشود
3. خواص مربوط به نوع قانون:برای rtExactDay: خواص Month, Day
برای rtNthDayOfWeekInMonth: خواص Nth, DayOfWeek, Month
توجه: اعداد منفی برای Nth به معنی شمارش از انتهای ماه به عقب هستند مثلا -1 به معنی "آخرین" میباشد.
برای rtNthDayOfWeekAfterADay: خواص Nth, DayOfWeek, Month, Day
توجه: اعداد منفی برای Nth به معنی جستجو برای N امین روز هفته قبل از روز مشخص شده هستند.
برای rtNearestDayOfWeek: خواص DayOfWeek, Month, Day
برای rtCustomRule: رویداد OnCustomRule کامپوننت TXCalendarEvents را فراموش نکنید
4. (اختیاری) Corrections: میتوانید از این خاصیت استفاده کنید اگر تعدادی روز مشخص باید به تاریخ وقوع محاسبه شده افزوده شود یا اگر تاریخ وقوع نباید روزهای خاصی از هفته باشد.
5. Title: عنوان رویداد
6. FormatTitle (Boolean): اگر Title حاوی کاراکتر های فرمت تاریخ است که باید با توجه به تاریخ وقوع فرمت شوند این خاصیت را True کنید.
7. IsVacation (Boolean): اگر این رویداد یک روز تعطیل را مشخص میکند این خاصیت را True کنید.
برای save/load رویدادها در فایل یا stream با فرمت XML متدهای زیر در TXCalendarEvents وجود دارند:
procedure SaveToStream(Stream: TStream);
procedure LoadFromStream(Stream: TStream);
procedure SaveToFile(const FileName: string);
procedure LoadFromFile(const FileName: string);
لطفا توجه کنید که اگر میخواهید از این متدها استفاده کنید تمام کامپوننت های تقویم استفاده شده در رویدادها باید Owner یکسانی داشته باشند که در خاصیت XCalendarsOwner کامپوننت TXCalendarEvents مشخص کرده اید.
البته چون TXCalendarEvents یک کامپوننت است، میتوانید آنرا با استفاده از متدهای TStream/TWriter/TReader دلفی نیز save/load کنید.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلام
با ديدن تقويم شما واقعا خوشحال شدم كه بعد از مدتها براي دلفي يك تقويم كامل ساخته شده ولي الان كمي نااميد و خسته هستم چون از ديشب دارم روي كامپوننت شما كار ميكنم تا باگهاشو برطرف كنم :(
يك باگ خيلي بد داره ! با روز 31 ماه اگوست مشكل داره نميدونم مشكل از كجاست به نظرم از روش استانداردي براي تبديلات استفاده نكردين
تاريخ سيستمتون رو روي 31 اگوست 2008 ست كنين بعد تو دلفي سعي كنين يك datapicker روي فرم بذارين تا نتيجه رو ببينين
خيلي خوشحال ميشم اين باگ مهم رو برطرف كنين. فكر ميكنم با روز آخر بعضي از ماه هاي ديگه هم مشكل داشته باشه.
مچكرم.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
ما هم منتظریم تا پاسخ بگیریم که این باگ خفن از کجا ناشی میشه و تصحیح بشه.:متعجب:
ضمناً تعطيليهاي مهرماه امسال هم تو اين تقويم خيلي باحاله (زياد شده).:متفکر:
اما واقعاً كار بي مثلي انجام شده و بايد درست شه:تشویق::تشویق::تشویق:
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
ببخشید که یک مدت نبودم.
نقل قول:
نوشته شده توسط
Delphi_Tips
با سلام
با ديدن تقويم شما واقعا خوشحال شدم كه بعد از مدتها براي دلفي يك تقويم كامل ساخته شده ولي الان كمي نااميد و خسته هستم چون از ديشب دارم روي كامپوننت شما كار ميكنم تا باگهاشو برطرف كنم :(
يك باگ خيلي بد داره ! با روز 31 ماه اگوست مشكل داره نميدونم مشكل از كجاست به نظرم از روش استانداردي براي تبديلات استفاده نكردين
تاريخ سيستمتون رو روي 31 اگوست 2008 ست كنين بعد تو دلفي سعي كنين يك datapicker روي فرم بذارين تا نتيجه رو ببينين
خيلي خوشحال ميشم اين باگ مهم رو برطرف كنين. فكر ميكنم با روز آخر بعضي از ماه هاي ديگه هم مشكل داشته باشه.
مچكرم.
باگ برطرف شد. لینک دریافت را به روز کردم.
متشکرم که این اشکال را پیدا کردید. البته این اشکال ارتباطی به کامپوننت های تقویم نداشت و در اثر عجله هنگام copy/paste کدهای کنترل های TMS Planner بوجود آمده بود. یک خط در متد TXCalPlannerCalendar.ChangeMonth جا افتاده بود که اضافه شد. باید این نکته را هم بگویم که کد کنترل های انتخاب تاریخ TMS Planner خیلی خوب نوشته نشده اند و من هم هنگام تغییر دادن آنها خیلی دقت نکرده ام. اما XCalendar را با دقت بیشتری نوشته ام. علت انتخاب کنترل های TMS Planner هم این بود که با وجود کدنویسی بد، از ظاهر و امکانات خوبی برخوردار بودند.
با عبارت "کامپوننت شما" هم در اشاره به کامپوننت های TMS Planner موافق نیستم چون اصل کار مربوط به برنامه نویسان شرکت TMS Software هست و من فقط (بدون رعایت حقوق مولفین) مقداری تغییرات در آنها داده ام.
راستی خیلی شرمنده ام از اینکه باعث نا امیدی و خستگی شما شدم.
نقل قول:
نوشته شده توسط
seyed_farid
سلام
ما هم منتظریم تا پاسخ بگیریم که این باگ خفن از کجا ناشی میشه و تصحیح بشه.:متعجب:
ضمناً تعطيليهاي مهرماه امسال هم تو اين تقويم خيلي باحاله (زياد شده).:متفکر:
اما واقعاً كار بي مثلي انجام شده و بايد درست شه:تشویق::تشویق::تشویق:
البته متوجه نشدم که مشکلی هم دارد یا نه. احتمالا شما در دموی IranEvents یک کنترل انتخاب تاریخ اضافه کرده اید و آنرا به IranAggregateEvents متصل کرده اید (که البته بهترین کار است). اگر می خواهید فقط روزهای تعطیل را داشته باشید می توانید از دکمه Save all vacations در این دمو استفاده کنید و فایل ایجاد شده را در یک کامپوننت TXCalendarEvents لود کنید.
-
1 ضمیمه
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلام
اين برنامه رو ببينيد. اشكالش تو تعطيلات مهرماه چيه؟:افسرده:
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
مشکل را دیدم. به احتمال زیاد مشکل در TXCalPlannerCalendar است که کدی که من برای نمایش رویدادهای XCalendar نوشته ام با ست کردن بعضی از خاصیت ها به اشکال برمی خورد. چون خودم که یکی دیگه روی فرم گذاشتم مشکل نداشت. متاسفانه الان وقت پیدا کردن مشکل رو ندارم. اگر توانستید حلش کنید خوشحال می شوم که اطلاع بدید.
در ضمن کدی که برای انتخاب اتفاقات نوشته اید اشکال دارد. احتمالا در نسخه بعد یک خاصیت Enabled برای آیتم های TXCalendarAggregateEvents اضافه می کنم.
باز هم ممنون
تصحیح: کد درست است. معذرت خواهی می کنم
-
1 ضمیمه
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
با تشکر از کامپونت زیبا و جالب شما
شاید عده ای از دوستان کامپونت tms را نصب کرده باشند من با اجازه آقا/خانم adgteq تغییراتی در سورس دادم که در هنگام نصب error ندهد
باز هم از زحمات ایشان کمال تشکر را دارم
-
1 ضمیمه
Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلام
ضمن تشکر از adgteq به خاطر این کامپوننت زیبا :تشویق: و pad_kay به علت مچ کردن آن با TMS Pack :تشویق: دو پیشنهاد دارم:
اول اینکه اگر امکانش وجود داره (که البته به نظر کار چندان سختی نمیرسه) PlannerCalendarGroup هم به مجموعه افزوده شود.
دوم اینکه DatePicker ها را به صورت DateTimePicker خود دلفی که داری تاریخ پیش فرض و چک صحیح بودن تاریخ وارد شده و قابلیت های دیگر از جمله افزایش یا کاهش با دکمه های Up و Down و ... ولی با قوانین تاریخ شمسی به آن اضافه شود که داخل ComboBox خالی نباشد؛
راهکار Mask چندان جالب به نظر نمیرسد، ضمن اینکه اجازه وارد کردن تاریخ نادرست را به کاربر میدهد
من یه برنامه نوشتم که این قوانین رو کنترل میکنه
مثلا اگه ماه 7 باشه تو روز اجازه نمیده کاربر عدد 31 رو وارد کنه
یا وقتی روز رو وارد میکنی به طور خودکار وارد ماه میشود و وقتی ماه رو وارد میکنی وارد قسمت سال میشود، دقیقا همانند DateTimePicker دلفی :لبخندساده:
اگه لازم شد اطلاع بدین تا هم سورسشو بدم هم کلیه توضیحات پیرامون قابلیتهاش
فقط توضیح دیگه اینکه روز، ماه، سال تو سه تا Edit جدا قرار دادم، چون نمیدونستم چه طوری میشه اینه سه تا رو توی یه کامپوننت پیاده و بین هر قسمت / بذارم
:لبخندساده:
-
1 ضمیمه
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
نوشته شده توسط
adgteq
مشکل را دیدم. به احتمال زیاد مشکل در TXCalPlannerCalendar است که کدی که من برای نمایش رویدادهای XCalendar نوشته ام با ست کردن بعضی از خاصیت ها به اشکال برمی خورد. چون خودم که یکی دیگه روی فرم گذاشتم مشکل نداشت. متاسفانه الان وقت پیدا کردن مشکل رو ندارم. اگر توانستید حلش کنید خوشحال می شوم که اطلاع بدید.
من با بررسی های که انجام دادم متوجه شدم زمانی این خطا پیش می آید که
1- همزان 1 روز خاص دارای رویداد در شمسی یا قمری و یا میلادی به طور همزمان باشد بعنوان مثال اتفاقی که برای ماه مهر می افتد این است که روز 5 در قمری و شمسی دارای رویداد می باشد در قمری تعطیل است
2-اولین روز مشترک باشد
3 - در یکی از آنها تعطیل باشد
اگر امکان دارد در مورد نحوه خواندن و ست کردن TXCalendarEvents در TXCalPlannerCalendar توضیحاتی بیان فرمائید تا بتوانم این اشکال را رفع کنم لازم به ذکر است این اشکال در اسفندماه سال 1387 نیز اتفاق می افتد
نقل قول:
نوشته شده توسط
adgteq
احتمالا در نسخه بعد یک خاصیت Enabled برای آیتم های TXCalendarAggregateEvents اضافه می کنم.
باز هم ممنون
من این خصوصیت را اضافه کردم و فایل با اجازه شما پیوست می کنم
لازم به ذکر است که من تنها ینوتی که در آن تغییرات اعمال شده است را ارسال نموده ام
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
من از یک چیز سر در نمیارم، این بنده خدا که پروژه را در SourceForge ثبت کرده، هر کدامتان می تونید راحت سورس را از آنجا بگیرید، تغییراتتان را اعمال کنید، و با یک هماهنگی کوچیک با ایشون، تغییراتتان را در Repository اعمال کنید تا همه استفاده کنند. پس چرا هر کدوم میاید یک پست میزنید و تغییراتتان در پست بصورت ضمیمه ارائه می کنید؟!!
اگر از Version Control ارائه شده استفاده کنید، هم کنترل تغییرات سورس راحتتر خواهد بود، هم کاربر بیچاره ایی که می خواد دانلود کنه، از یک جا دانلود میکنه، نه اینکه یک تاپیک چند صفحه ایی را زیر رو رو کنه و تغییرات افراد مختلف را - که سورسشان هم با هم هماهنگ نیست را - روی سورس اصلی اعمال کنه!
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
نوشته شده توسط
علی کشاورز
من از یک چیز سر در نمیارم، این بنده خدا که پروژه را در SourceForge ثبت کرده، هر کدامتان می تونید راحت سورس را از آنجا بگیرید، تغییراتتان را اعمال کنید، و با یک هماهنگی کوچیک با ایشون، تغییراتتان را در Repository اعمال کنید تا همه استفاده کنند. پس چرا هر کدوم میاید یک پست میزنید و تغییراتتان در پست بصورت ضمیمه ارائه می کنید؟!!
آقای علی کشاورز در مورد سخنان شما فکر کردم و به این نتیجه رسیدم که :
اصولا ایجاد و طرح سوال برای چی است ؟
اصولا ایجاد سایتهای به زبان مادری به چه منظور می باشد؟
نقل قول:
نوشته شده توسط
علی کشاورز
اگر از Version Control ارائه شده استفاده کنید، هم کنترل تغییرات سورس راحتتر خواهد بود، هم کاربر بیچاره ایی که می خواد دانلود کنه، از یک جا دانلود میکنه، نه اینکه یک تاپیک چند صفحه ایی را زیر رو رو کنه و تغییرات افراد مختلف را - که سورسشان هم با هم هماهنگ نیست را - روی سورس اصلی اعمال کنه!
آیا بهتر نیست برای این منظور راه حل بهتری در نظر یگیرد
باتشکر
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
آقای علی کشاورز در مورد سخنان شما فکر کردم و به این نتیجه رسیدم که :
اصولا ایجاد و طرح سوال برای چی است ؟
اصولا ایجاد سایتهای به زبان مادری به چه منظور می باشد؟
شما برنامه را با زبان مادری می نویسید، یا با زبان دلفی؟! برای استفاده از Repository سایت SourceForge نیازی به دانستن زبان بیگانه، یا خواندن مطالب سایت بیگانه نیست، آدرس Repository پروژه مورد نظرتون را تایپ می کنید، آخرین نسخه سورس کد را بهتون میده. برای Upload کردن هم TortoiseSVN نصب می کنید، و با یک راست کلیک روی فایل سورس و کلیک روی SVN Commit سورس را به Repository ارسال می کنید.
اینطوری مدیر پروژه میدونه چه کسی، چه زمانی، چه تغییری در سورس داده. هر زمان هم که مشکلی پیش آمد، میتونه سورس را به حالت قبل برگردانه.
ما در سایت برنامه نویس مثل سایت SourceForge نرم افزار Version Control نصب شده روی سرور، برای نرم افزارهای ارائه شده توسط کاربران نداریم، که بخوایم به شما ارائه کنیم.
این سایت محل بحث هست، برای راحتی دانلود کنندگان، و فردی که مسئول پروژه هست، وقتی پروژه در SourceForge ثبت شده، بهترین کار آپدیت همون سورس کد از طریق SVN هست، نه کپی کد آپدیت شده در پست های تاپیک.
نقل قول:
آیا بهتر نیست برای این منظور راه حل بهتری در نظر یگیرد
یعنی یک چیز جدیدی جایگزین Version Control اختراع کنیم؟! شما الان با سورس کدهاتون در پروژه چکار می کنید؟ همینطوری روی هارد ذخیره می کنید و هر وقت هم تغییری خواستید انجام بدید، تغییر را روی فایل قبلی اعمال می کنید؟ اگر هم پروژه گروهی بود، هر کسی فایلی که کار کرده را برای دیگران میفرسته و دیگران توی سیستمشان Copy\Paste می کنند؟! یا میرید یک نرم افزار Version Control روی سیستمتون نصب می کنید؟
برای اطلاعات بیشتر:
http://en.wikipedia.org/wiki/Version_Control
در ضمن، دوستان بیش از این بحث تاپیک را منحرف نکنید.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
لینک دریافت به روز شد.
نقل قول:
شاید عده ای از دوستان کامپونت tms را نصب کرده باشند من با اجازه آقا/خانم adgteq تغییراتی در سورس دادم که در هنگام نصب error ندهد
حقیقتش من هم در نسخه 080825 کنترل های انتخاب تاریخ برای جلوگیری از این مشکل نام یونیت ها و کنترل های نصب شده را عوض کردم اما به دلیل کمبود وقت نتوانستم تست کنم و الان متوجه شدم که مشکل همنام بودن چند تا از کلاس ها باقی مانده بوده که در نسخه آپدیت شده رفع شد.
نقل قول:
اگر امکان دارد در مورد نحوه خواندن و ست کردن TXCalendarEvents در TXCalPlannerCalendar توضیحاتی بیان فرمائید
کد مربوط به های لایت کردن رویدادها را در متد TXCalPlannerCalendar.PaintProc اضافه کرده ام. تابع CheckXCalEvent اضافه شده است که سه ارجاع به آن وجود دارد برای روزهای ماه قبل و روزهای ماه بعد و روزهای ماه فعلی. کد مربوط به افزودن Hint هم در انتهای متد TXCalPlannerCalendar.MouseMove قرار دارد. فیلد FEOL (از نوع TXCalEventOccurenceList) شامل رویداد های روز های نمایش داده شده هست که با تغییر ماه به روز رسانی می شود.
نقل قول:
من این خصوصیت را اضافه کردم و فایل با اجازه شما پیوست می کنم
در نسخه آپدیت شده کنترل های انتخاب تاریخ قرار گرفت. بعدا در نسخه اصلیXCalendar هم اعمال خواهد شد.
نقل قول:
اول اینکه اگر امکانش وجود داره (که البته به نظر کار چندان سختی نمیرسه) PlannerCalendarGroup هم به مجموعه افزوده شود.
متاسفانه فعلا وقتش رو ندارم. باید اعتراف کنم که کنترل های TMS Planner را با عجله برای نشان دادن کارهایی که میشه با چیزی مثل XCalendar انجام داد منتشر کردم و بعضی از قسمت هاش رو هم حذف کردم.
نقل قول:
دوم اینکه DatePicker ها را به صورت DateTimePicker خود دلفی که داری تاریخ پیش فرض و چک صحیح بودن تاریخ وارد شده و قابلیت های دیگر از جمله افزایش یا کاهش با دکمه های Up و Down و ... ولی با قوانین تاریخ شمسی به آن اضافه شود که داخل ComboBox خالی نباشد؛
چون DateTimePicker دلفی یک wrapper برای یک کنترل ویندوز هست سورسش در دستم نیست. ولی فکر می کنم مثلا با استفاده از OnKeyDown و ... کنترل های انتخاب تاریخ TMS Planner و استفاده از متد های IncDay و IncMonth و IncYear تقویم مربوطه بتوانید افزایش و کاهش تاریخ را پیاده سازی کنید. البته قطعا اگر این جور امکانات در خود کنترل ها قرار داده شود بهتر است.
نقل قول:
راهکار Mask چندان جالب به نظر نمیرسد، ضمن اینکه اجازه وارد کردن تاریخ نادرست را به کاربر میدهد
احتمالا در نسخه اصلی کنترل ها هم همین مشکل وجود داشته باشد.
نقل قول:
من از یک چیز سر در نمیارم، این بنده خدا که پروژه را در SourceForge ثبت کرده، هر کدامتان می تونید راحت سورس را از آنجا بگیرید، تغییراتتان را اعمال کنید، و با یک هماهنگی کوچیک با ایشون، تغییراتتان را در Repository اعمال کنید تا همه استفاده کنند. پس چرا هر کدوم میاید یک پست میزنید و تغییراتتان در پست بصورت ضمیمه ارائه می کنید؟!!
اگر از Version Control ارائه شده استفاده کنید، هم کنترل تغییرات سورس راحتتر خواهد بود، هم کاربر بیچاره ایی که می خواد دانلود کنه، از یک جا دانلود میکنه، نه اینکه یک تاپیک چند صفحه ایی را زیر رو رو کنه و تغییرات افراد مختلف را - که سورسشان هم با هم هماهنگ نیست را - روی سورس اصلی اعمال کنه!
البته در SourceForge کنترل های سازگار شده با XCalendar را قرار نداده ام که بیشتر تغییرات انجام شده روی آنها بوده است. خودم هم تابه حال از Version Control و Repository استفاده نکرده ام و از نظر من البته با کسب اجازه از جناب علی کشاورز شاید همین طوری هم خیلی بد نباشه و ساده تر هست. نتیجه کار رو هم در همان پست اصلی به روز می کنیم.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
مشکل نمایش رویدادها در کنترلهای انتخاب تاریخ برطرف شد. (پست 19) می توانید نسخه به روز شده را از پست دوم دریافت کنید.
باید یک معذرت خواهی هم از seyed_farid بکنم چون کدی که برای انتخاب اتفاقات نوشته بودند درست بود. (پست 20)
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
نوشته شده توسط
adgteq
باید یک معذرت خواهی هم از seyed_farid بکنم چون کدی که برای انتخاب اتفاقات نوشته بودند درست بود. (پست 20)
خواهش میکنم.:قلب:
واقعاً دستتون درد نکنه . کامپوننتتون محشره:تشویق::تشویق::تشویق:
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
ضمناً يك مورد كوچك ديگه هم اينكه وقتي از روي كليد ماه به سال ميريم Hint درست كار نميكنه. اونهم فكر كنم چون چسبيده بهم هستند اين مشكل پيش مياد.
اگر بتونيد سه تقويم را همزمان تو هم نشون بديد، مثل تقويمهاي چاپي خيلي باحال ميشه.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
نوشته شده توسط
seyed_farid
اگر بتونيد سه تقويم را همزمان تو هم نشون بديد، مثل تقويمهاي چاپي خيلي باحال ميشه.
اگه اينطوري بشه كه عالي ميشه
فكر نميكنم بيشتر از نيم ساعت كار داشته باشه
خواهشنا هر كدوم از دوستان كه اين كار رو بلد هستن انجام بدن و ورژن جديد رو براي بقيه آپلود كنن
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
فكر نميكنم بيشتر از نيم ساعت كار داشته باشه
سورسش که آماده دانلود هست، اگر فقط نیم ساعت کار داره، شما شروع کنید. اگر هم نمیدونید چطور باید این کار انجام بشه، چطور حدس زدید که فقط نیم ساعت کار داره؟!!
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
نقل قول:
ضمناً يك مورد كوچك ديگه هم اينكه وقتي از روي كليد ماه به سال ميريم Hint درست كار نميكنه. اونهم فكر كنم چون چسبيده بهم هستند اين مشكل پيش مياد.
اشکال برطرف شد. می توانید نسخه به روز شده را از پست دوم دریافت کنید. (فقط یونیت xcalPlannerCal.pas تغییر کرده است)
نقل قول:
اگر بتونيد سه تقويم را همزمان تو هم نشون بديد، مثل تقويمهاي چاپي خيلي باحال ميشه.
به نظر من کدنویسی این کار باید با سلیقه برنامه نویسی که به آن احتیاج داره انجام بشه. مثلا دموی IranEvents موجود در XCalendar همین کار رو انجام میده البته نه به شکل تقویم های چاپی. باید مقدار TDateTime هر روز قابل نمایش را توسط سه تقویم دیکود (یا فرمت) کرد. نتیجه رو هم میشه به طور دلخواه روی فرم نمایش داد یا در ابزار گزارش گیری استفاده کرد.
باز هم متشکرم که با نظراتتان نگارنده را دلگرم می کنید و ببخشید که دیر به دیر می توانم به اینجا سر بزنم.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
دوست عزيز
من ميخوام با استفاده از ايونتها جدولي و فرمي بسازم و ايونتها رو توش ويرايش كنم و قابليت حذف هم داشته باشه.
ميتونيد منو راهنمائي كنيد؟
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلام
تقویمتون خیلی عالیه ممنون *
یه سوال داشتم
من میخوام تاریخ همون روز رو تو ماسک ادیتهایی که بالایه صفحه های برنامه م هست رو نشون بده
یعنی با چه دستوری مثلا اینجوری :
maskedit1.text:=?
مرسی
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
کسی نمیدونه با چه دستوری تاریخ روز جاری یا روزی رو که دراون قرار داریم رو تو ادیت یا ماسک ادیت قرار بدیم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
اول تقويمتو مشخص كن.(شمسي، قمري، ميلادي).
بعدش هم؛
XCalPlannerCalendar1.Date := Now ;
maskedit1.Text := (XCalPlannerCalendar1.DatesAsText);
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
با سلاممن یه مشکلی داشتم اونم اینه که :من وقتی تو فرم 2 تا XCalPlannerMaskDatePicker و یه دونه PersianCalendar1وبعد میام خاصیت XCalender مربوط به این 2 تا XCalPlannerMaskDatePicker رو برابر ، PersianCalendar1 قرار میدم تا اینجا که هیچ مشکلی نیست تقویم تو این کمبوباکسا نشون داده میشه
ولی یه خطا::::::::::
اونم اینه که مثلا شما بیاید رو XCalPlannerMaskDatePicker اولی کلیک کنید بعد بیاید رو XCalPlannerMaskDatePicker دومی کلیک کنید اینجاست که این خطا میاد :
PROJECT
PROJECT1.EXE RAISED EXCEPTION CLASS ECONVERTERROR WITH MESSAGE '''IS NOT A VALID DAT'.PROCESS STOPPED .USE STEP OR RUN TO CONTINUE.
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
نقل قول:
با سلام
من یه مشکلی داشتم اونم اینه که :من وقتی تو فرم 2 تا XCalPlannerMaskDatePicker و یه دونه PersianCalendar1وبعد میام خاصیت XCalender مربوط به این 2 تا XCalPlannerMaskDatePicker رو برابر ، PersianCalendar1 قرار میدم تا اینجا که هیچ مشکلی نیست تقویم تو این کمبوباکسا نشون داده میشه
ولی یه خطا::::::::::
اونم اینه که مثلا شما بیاید رو XCalPlannerMaskDatePicker اولی کلیک کنید بعد بیاید رو XCalPlannerMaskDatePicker دومی کلیک کنید اینجاست که این خطا میاد :
PROJECT
PROJECT1.EXE RAISED EXCEPTION CLASS ECONVERTERROR WITH MESSAGE '''IS NOT A VALID DAT'.PROCESS STOPPED .USE STEP OR RUN TO CONTINUE.
در رابطه یا این مشکله به نظر خودم تنها راهش اینه که مااجازه ندیم کاربر تو محیط کمبوباکس یعنی اونجایی که تاریخ نمایش داده میشه و نوشته میشه کلیلک کنه و فقط کاربر با اون مثلث کنار کمبوباکس فقط بتوونه کار کنه و تاریخشو انتخاب کنه
چه جوری میتونم این کارو انجام بدم ؟؟؟؟؟؟
و
آیا
راه دیگه ای هست ؟؟؟؟؟؟
ممنون میشم یکی سریع جوابمو بده:ناراحت:
مرسی
-
نقل قول: Xcalendar – مجموعه تقویم عمومی برای دلفی
سلام
نقل قول:
من ميخوام با استفاده از ايونتها جدولي و فرمي بسازم و ايونتها رو توش ويرايش كنم و قابليت حذف هم داشته باشه.
فرض کنیم روی فرم یک ListBox برای نمایش لیست رویدادهای سالانه (lbEvents) یک Edit برای ورود عنوان رویداد (edtTitle) یک CheckBox برای انتخاب تعطیل بودن یا نبودن (cbVacation) یک ComboBox برای انتخاب نوع تقویمی که رویداد بر اساس آن محاسبه می شود (cboCalendar) و کنترل های دیگر برای پارامتر های لازم دیگر داشته باشیم. کد لازم برای دکمه های Add و Delete و Update می تواند شبیه کد زیر باشد:
procedure TForm1.btnAddClick(Sender: TObject);
begin
with XCalendarEvents1.Events.Add do
begin
Title := edtTitle.Text;
IsVacation := cbVacation.Checked;
case cboCalendar.ItemIndex of
0: XCalendar := PersianCalendar1;
1: XCalendar := HijriCalendar1;
2: XCalendar := GregorianCalendar1;
end;
case rgRuleType.ItemIndex of
0: // Exact day
begin
Month := StrToInt(edtMonth.Text);
Day := StrToInt(edtDay.Text);
end;
1: // Nth Day-of-week in month
begin
Nth := ...
DayOfWeek := ...
Month := ...
end;
...
end;
...
end;
end;
procedure TForm1.btnDeleteClick(Sender: TObject);
begin
XCalendarEvents1.Events.Delete(lbEvents.ItemIndex) ;
end;
procedure TForm1.btnUpdateClick(Sender: TObject);
begin
with XCalendarEvents1.Events[lbEvents.ItemIndex] do
begin
Title := edtTitle.Text;
IsVacation := cbVacation.Checked;
... // Just like the code for btnAddClick
end;
end;
البته باید یک مقدار کد هم برای به روز رسانی کنترلها نوشت.
نقل قول:
من میخوام تاریخ همون روز رو تو ماسک ادیتهایی که بالایه صفحه های برنامه م هست رو نشون بده
همانطور که می دانید مقدار TDateTime روز جاری را در دلفی می توان با تابع Date بدست آورد (یا اگر همراه با زمان جاری می خواهید با تابع Now). با استفاده از XCalendar هم که تمام امکاناتی که در دلفی برای تقویم میلادی موجود است بطور عمومی برای تقویمهای مختلف پیاده سازی شده قابل دسترسی هست. (پست سیزدهم را ببینید) مثلا می توانید از متد DateToStr استفاده کنید:
maskedit1.text := PersianCalendar1.DateToStr(Date);
در ضمن برای محاسبات تقویمی هیچ نیازی به استفاده از کنترل های انتخاب تاریخ نیست. آن کنترل ها خود از امکانات کامپوننت های تقویم استفاده می کنند.
نقل قول:
مثلا شما بیاید رو XCalPlannerMaskDatePicker اولی کلیک کنید بعد بیاید رو XCalPlannerMaskDatePicker دومی کلیک کنید اینجاست که این خطا میاد
این خطا فقط هنگام debug برنامه تحت دلفی نمایش داده می شود و فکر می کنم در نسخه اصلی کنترل ها هم این مشکل وجود داشته. با غیر فعال کردن Stop on Delphi Exceptions (یا Notify on language exceptions) در Debugger Options می شود از نمایش این پیغام جلوگیری کرد.