ورود

View Full Version : كامپوننت تقويم شمسی



صفحه : 1 [2]

hamid20live
جمعه 19 آذر 1389, 18:17 عصر
من تو SolarCalendar وقتی تعداد ماههایی که با استفاده از تابع

incmonth اضافه میکنم بیشتر از 1 سال باشه اشتباه محاسبه

میکنه مثلا وقتی به تاریخ 1389/7/14 ، 6 ماه اضافه میکنم عوض

اینکه بیاره 1390/1/14 میاره 1390/6/14 دلیلش چیه؟

2.27.20 فکر کنم آخرین ورژنش باشه

hp1361
چهارشنبه 24 آذر 1389, 12:20 عصر
با سلام همه دوستان و تشکر از آقای خورسندی

تا اونجایی که من با این کامپوننت کار کردم متوجه شدم که در صورت استفاده از SolarDtePicker و یا SolarMonthCalendar بر روی فرم خود می توانیم از توابعی که برای اونها تعریف شده استفاده کنیم.مثلا اگه به تاریخ جاری سیستم بصورت شمسی نیاز داریم می تونیم از تابع GetDateWithDiv استفاده کنیم.

سوال من اینه:اگه جایی نیاز بود که فقط با تاریخ توی کدهامون سروکار داشته باشیم و لازم نباشه چیزی به کابر نشون داده بشه این توابع بصورت یک Utility در دسترس نیستند؟بعضی ها گفتند خوب می تونید از تقویم های دیگه مثل Solarutl یا Persian.dll یا Shamsi.dll استفاده کنید!خوب به نظرم این منطقی نیست توی برنامه ام از 2کامپوننت برای 1کار استفاده کنم.

سوال من از آقای خورسندی اینه که آیا همچین چیزی توی کامپوننت شما هست و شاید من ازش بی خبرم؟و اگه نیست آیا دلیل خاصی داشتن که اینکارو نکردن؟(بهرحال یقینا همچین چیزی به فکرتون رسیده و بعنوان 1برنامه نویس بهش فکر کردین)

با تشکر

سيد مجتبي هاشمي
پنج شنبه 25 آذر 1389, 20:15 عصر
آقاي خوسندي يه مشكل در استفاده از SolarDatePicker دارم.
زماني كه در SolarDatePicker بر روي روز مورد نظر كليك ميكنم و تاريخ در اديت قرار ميگيره، Focus از روي فرم برداشته ميشه و روي فرم ديگه اي قرار ميگيره و حتما بايد دوباره روي فرم كليك كنم تا Focus روي آن برگردد. لطفا راهنمايي كنيد كه چه طور اين مشكل رو حل كنم؟

يه سوال ديگه هم داشتم.
آيا SolarDatePicker رويداد OnDayClick داره يا نه؟ اگه نداره آيا ميشه بهش اضافش كرد؟
اگه اين رويداد وجود داشت ميشد مشكل بالا رو يه جوري حل كرد.

JavanSoft
سه شنبه 12 بهمن 1389, 23:02 عصر
سلام و عرض ادب
نميدانم در جريان اين مشكل هستيد يا خير و اصلا اين مشكل من است يا خير
اما ديروز در تستهاي برنامه ام متوجه شدم كه با كليك بروي "امروز" تاريخ معادل فارس اشتباه برگردانيده ميشود . ماه 3 رقي است . من انرا بدين صورت اصلاح كردم و با تاريخهاي مختلف چك كردم . ويندوز من 7/32 و دلفي من 2010 است از فارسي ساز خودم استفاده ميكنم كه هيچ نوع فونتي را نصب نميكند و هيچ تغيري در Date نميدهد . فرمت تاريخ را در برنامه ام dd/mm/yyyy قرار ميدهم



function ConcatenateDate(ACurrMonth: integer; AYear, AMonth, ADay: Word): String;
var
Y,M,D,
Output: String;
begin
Y:=IntToStr(AYear);

if ACurrMonth < 10 then
M := '0' + IntToStr(AMonth)
else
M := IntToStr(AMonth) ;
if Length(M)=3 then
Delete(M,1,1);
if ADay < 10 then
D := D + '0' + IntToStr(ADay)
else
D := D + IntToStr(ADay);
Output:=Y+'/'+M+'/'+D;
Result := Output;
// Y:=IntToStr(AYear);
// Output := + '/';
//
// if ACurrMonth < 10 then
// Output := Output + '0' + IntToStr(AMonth) + '/'
// else
// Output := Output + IntToStr(AMonth) + '/';
//
// if ADay < 10 then
// Output := Output + '0' + IntToStr(ADay)
// else
// Output := Output + IntToStr(ADay);
//
// Result := Output;
end;

BORHAN TEC
چهارشنبه 27 بهمن 1389, 09:42 صبح
یک خطا:
این کامپوننت در نمایش متون فارسی مشکل دارد( من از Delphi XE) استفاده می کنم.

kazifasa
شنبه 30 بهمن 1389, 12:37 عصر
دوستان من اگر بخوام به یک کپشن تاریخ روز بدم چه کار کنم

JavanSoft
یک شنبه 01 اسفند 1389, 00:23 صبح
http://www.irandelphi.ir/showthread.php?t=112&page=6

m_r_moini
پنج شنبه 05 اسفند 1389, 18:33 عصر
دوستان من اگر بخوام به یک کپشن تاریخ روز بدم چه کار کنم
براي اين كار يك solarmonthcalendar روي فرم قرار دهيد و انرا Invisible كنيد سپس براي تغيير كپشن ليبل دستور زير را بنويسيد .
Label1.Caption:=SolarMonthCalendar1.SolarDate;
موفق باشيد .

hadisalahi2
پنج شنبه 05 اسفند 1389, 18:48 عصر
در هنگام اضافه کردن روز با تابع IncDay ، بعد از چند بار اضافه کردن یک عدد خاص به تاریخ مورد نظر ، کامپوننت تاریخ رو اشتباه حساب میکنه.
مثلا اگه از 138/1/1 عدد 7 رو اضافه کنید ، بعد از اردیبهشت به بعد تاریخ ها رو اشتباه حساب میکنه.

JavanSoft
یک شنبه 15 اسفند 1389, 14:22 عصر
در هنگام اضافه کردن روز با تابع IncDay ، بعد از چند بار اضافه کردن یک عدد خاص به تاریخ مورد نظر ، کامپوننت تاریخ رو اشتباه حساب میکنه.
مثلا اگه از 138/1/1 عدد 7 رو اضافه کنید ، بعد از اردیبهشت به بعد تاریخ ها رو اشتباه حساب میکنه.

توصيه اكيد دارم به منظور اجتناب از اينگونه اشكالها اين كامپوننت را روي يك فرم قرار دهيد و سپس فرم را در زمان درياف تاريخ ايجاد (Create)و بعد هم از بين ببريد(FreeAndNil)

maryammb66
چهارشنبه 18 اسفند 1389, 11:30 صبح
چطوری میشه دانلودش کرد؟1
هر کاری می کنم به صفحات مختلفی لینک میکنه و نمی دونم چطوری دانلود کنم!!!

maryammb66
چهارشنبه 18 اسفند 1389, 12:09 عصر
سلام
بازم دانلود نشد
مثل همیشه این پیغام رو میده
problems with the download? Please use this direct link (http://downloads.sourceforge.net/project/solarcalendar/solar%20calendar%20package/2.26.11/solar_calendar_package_2.26.11.rar?use_mirror=garr ) or try another mirror (http://sourceforge.net/settings/mirror_choices?projectname=solarcalendar&filename=solar%20calendar%20package/2.26.11/solar_calendar_package_2.26.11.rar).


ممنون میشم کسی کمک کنه

m-khorsandi
چهارشنبه 18 اسفند 1389, 12:59 عصر
معمولن بعد از اینکه این پیغام نمایش داده میشه باید صبر کنید تا دانلود منیجر یا براوزرتون شروع به دانلود کنه،
اگه این اتفاق نیفتاد روی لینک direct link کلیک کنید تا مستقیمن دانلود کنید.

raa126
سه شنبه 17 خرداد 1390, 17:00 عصر
با عرض سلام و خسته نباشید خدمت دوستان

بنده فقط اومدم بگم از کامپوننت SolarCalendarPack استفاده نکنید چونکه من از این کامپپوننت در یکی از پروژه هام استفاده کردم . کار پروژه چندین ماهی طول کشید و این کامپوننت کاملاً درست کار می کرد ولی در اتمام کار با اضافه سازی شی ای از کامپوننت سویی پک پروژه ام دچار مشکل شد و دلفی خطا Duplication resurce داد . بعد از یک روز تلاش ، تازه فهمیدم مشکل از سولار و دقیقاً به فایل calender...res گیر میداد . بعد از حذف سولار پروژه سکته کرده من دوباره زنده شد . فقط خواستم تجربه ام انتقال بدم تا کسی دیگه مثل من اینطور ضد حال نخوره . موفق باشید.

m-khorsandi
سه شنبه 17 خرداد 1390, 23:26 عصر
مطمئن باش كه اگه مشكل Duplicate Resource پروژه‌ات رو اينجا می‌نوشتی، زودتر به نتيجه می‌رسيدی و نيازی نبود يك روز برای چنين مشكلی تلاش كنی!

m_r_moini
شنبه 28 خرداد 1390, 23:08 عصر
آقای خرسندی ، با سلام ، هنوز منتظر نسخه جدید هستیم . با تشکر

ahmadbh
یک شنبه 12 تیر 1390, 10:21 صبح
با سلام و خسته نباشيد آقاي خرسندي
موقعي كه در قسمت سال مقدار سال را دستي تايپ ميكنيم با زدن كليد اينتر مقدار سال تاييد ميشود ولي با زدن اينتر دوم ارور ميدهد
اگر بعد از تايپ سال با كليد تب خاج شويم و ثبت شود يعني On Exit خيلي بهتره
با تشكر از شما

mog1360
چهارشنبه 15 تیر 1390, 12:54 عصر
سلام جناب خورسندی و خسته نباشید
بعد از چند وقت که از کامپوننت شما تو پروژه های مختلف استفاده کردم لازم دونستم که مراتب تشکر خودم را اعلام کنم.از نظر من کامپوننت شما بهترین کامپوننت تقویم شمسی هستش.فقط دو مورد را به نظرتون می رسونم :
1- فایل راهنما همراه فایلهای پروژه تو sourceforge نیست بهتره این فایل را هم قرار بدید تا دوستان مبتدی بتونن یکجا همشو دانلود کنن البته لینک دانلود فایل pdf یه جایی تو همین تاپیک هست ولی فایل اونجا هم باشه بهتره.
2- جایی تو همین تاپیک دیدم قول داده بودید که قابلیت اتصال به دیتابیس را اضافه می کنید. هنوز هم تصمیم دارید این کار رو انجام بدید؟
بازم تشکر می کنم بابت کامپوننت خوبتون

rezamahdizadeh
پنج شنبه 13 مرداد 1390, 08:05 صبح
اگ بخواهیم روی یک سال پیش فرض مثلا 1390 بیاید و سال را بین دو مقدار مثلا 1389 و 1390 محدود کنیم چه کدهایی باید بنویسیم؟

tadeh2010
سه شنبه 29 شهریور 1390, 00:02 صبح
کوووووووووووووووووووووووو ووووووووووووووووووووووووو وووووووووووووووو
این فایل راهنمات کووووووووووووووووشش
کوش
آدم یه کاری هم می کنه درست بکنه ، نه اینکه نصفه کاره ولش بکنه .
یه راهنمایی چیزی
تو همین تاپیک صدهزار بار افراد مختلف گفتند راهنما راهنما
آخه کوووووووووووووووووووووووو وووووووو


اطلاعاتی كه خواستی رو با اين كامپوننت ميتونی داشته باشی،
اين توابع كمكت ميكنن‌:
MonthName
DayName
Year
Month
Day

بقيه‌اش رو هم تو فايل راهنما (http://sourceforge.net/projects/solarcalendar/) ببين.

pop123
سه شنبه 29 شهریور 1390, 00:03 صبح
الان مشکلتون چیه ؟

tadeh2010
سه شنبه 29 شهریور 1390, 00:20 صبح
من دارم یکی از پروژه هام رو از دلفی 7 به 2010 تغییر می دهم
ولی به سختی همه کامپوننتها یم رو به 2010 تغییر داده ام یا جدیدش را سرچ کردم و دانلود کرده ام.
و حالا که رسیده ام به این یکی وقتی برنامه را اجرا کردم فونتهایش بهم ریخته بازهم جدیده رو دانلود کردم ولی فرقی نکرد
ویندوز من 7 است
ولی فول فارسی اش نکرده ام
می دونم اگر بکنم این مشکل حل می شود ولی فکر می کنم مشکل دیگری ظاهر می شود یعنی همون مشکل یونیکد در دلفی 7 ولی نه اون مشکل بلکه ظاهرا همون مشکل
چون من برنامه را در یک سیستم که فول فارسی است نوشته ام و اگر در سیستمی که فول فارسی نیست اجرایش بکنم فونت و نوشته های نا مفهوم می آید. درست می گویم.
کمک بکنید.

m-khorsandi
سه شنبه 29 شهریور 1390, 11:54 صبح
کوووووووووووووووووووووووو ووووووووووووووووووووووووو وووووووووووووووو
این فایل راهنمات کووووووووووووووووشش
کوش
آدم یه کاری هم می کنه درست بکنه ، نه اینکه نصفه کاره ولش بکنه .
یه راهنمایی چیزی
تو همین تاپیک صدهزار بار افراد مختلف گفتند راهنما راهنما
آخه کوووووووووووووووووووووووو وووووووو



فایل راهنما رو از اینجا (http://sourceforge.net/projects/solarcalendar/files/Solar%20Calendar%20Package/2.26.11/) میتونی بگیری.

studentbabak
سه شنبه 29 شهریور 1390, 11:58 صبح
آقای خورسندی امکانش هست یه ایمیل بدید تا باهاتون در ارتباط باشم؟

mmohsenifar
پنج شنبه 31 شهریور 1390, 11:54 صبح
با سلام من Solar Calendar Package_2.27.20 رو دانلود کردم و تو Delphi XE ازش استفاده می کنم اما یه مشکلی که داره وقتی ماه های قبل یا ماه های بعدی رو انتخاب می کنم و روی هر کدام از روزا کلیک می کنم خاصیت INDate اون 32 اون ماه رو نشون میده ، اگه میشه راهنماییم کنین.

Delphi_Developer
جمعه 01 مهر 1390, 08:30 صبح
سلام
کامپوننت تبدیل میلادی به شمسی و ... فانکشن تبدیل میلادی به شمسیش مشکل داره - الان من تاریخ 23/09/2011 رو که بهش میدم یعنی امروز - تاریخ 1390/07/06 رو بر میگردونه !!!

benyaminrahimi
جمعه 29 مهر 1390, 10:21 صبح
سلام .. آیا امکان وصل به دیتا ست هم داره ؟ ... من با shdate کار میکنم بدم نمیاد کار شما رو هم هم ببینم 76877

tadeh2010
پنج شنبه 24 آذر 1390, 16:18 عصر
تشکر آقای خرسندی
ولی یک مشکل!
آیا تا به حال در سیستمی که تاریخش با فرمتی بجز آن فرمتی که در برنامه تعریف شده است از برنامه تان استفاده کرده اید؟
البته تاریخ شمسی از نوع رشته است ولی تاریخ میلادی چی؟
من که با انبوهی از مشکلات رو برو شدم;تا آنجا که از استفاده ی کامپوننت شما در برنامه هایم منصرف شده ام.
لطفا یا راهنماییم بکنید یا مشکل را حل نمایید.
با سپاس فراوان.

m-khorsandi
پنج شنبه 24 آذر 1390, 21:14 عصر
لطفاً تمام دوستانی كه از اين كامپوننت استفاده ميكنن نظرات، اشكالات و نيازهاشون رو بنويسن تا ظرف چند روز آينده، حداكثر اين موارد اعمال بشه و نسخه‌ی جديد رو آپلود كنم،
اگه اشكالی وجود داره، فرآيند توليد اشكال به صورت كامل نوشته بشه تا وقت كمتری برای رفع اشكال صرف بشه و
اگه نيازی وجود داره، به صورت كامل شرح داده بشه تا نيازی به پرسش و پاسخ نباشه.

ممنون

tadeh2010
جمعه 25 آذر 1390, 10:28 صبح
سلام استاد گرامی و جناب خرســـنـــدی
به نظر من بهتر است در برنامه تان روز ، ماه و سال به صورت عددی به برنامه پاس داده شود (در حال حاضر فقط مقدار text که از نوع رشته است این کار را می کند).
ولی مشکل فوق (که اگر تاریخ سیستم با یک فرمت دیگر باشد) در داخل کا مپوننت به مشکل بر می خوریم ولی من فکر کردم اگر از طریق سه پارامتر عددی بشود تاریخ را به کامپوننت پاس کرد می توانید در خود کامپوننت از تابع encodedate برای ساخت تاریخ با فرمت سیستم استفاده بکنید .
متشکرم .

tadeh2010
جمعه 25 آذر 1390, 10:41 صبح
یک مشکل دیگر هنگام استفاده از کامپوننت در ویندوز 7 (من با دلفی 2010 کار می کنم )
لیبل یا پنل( یا هر نوع آبجکتی که هست ) ورود سال به صورت مخفی در می آید
تا زمانی که کاربر بر رویش کلیک بکند یا focus شود .
فکر بکنم مشکل در همخوانی استایل های ویندوز ها می باشد! و با تغییر نوع آبجکتی که در کامپوننت create کرده اید مشکل حل شود یا بررسی بکنید که آیا آبجکتی که ساخته اید برای ورود سال properties ی دارد که بشود این مشکل را حل کرد و شما هم در خصوصیات کامپوننت تان ارجاعش بدهید مثلا خصوصیت رنگ یا استایل یا فونت یا حتی فاکوس .
متشکرم.

naderanhari
شنبه 26 آذر 1390, 16:59 عصر
با سلام و خسته نباشید و تشکر از زحمات آقای خرسندی. تعدادی از موارد به شرح ذیل:
1- CaptionColor رنگ پانل بالای فرم را تغییر نمیدهد. هنگام ایجاد تقویم همان رنگ زمینه نمایش داده میشود.
2- با تاریخ میلادی کار نمیکند. حداقل در ویندوز 7. احتمالا باید فرمت تاریخ را در ویندوز عوض کرد تا مشکل حل شود. که اینکار برای یک کمپوننت تاریخ ایراد است.
3- اگر ویژگی برای تنظیم عرض خطوط جدول وجود داشته باشد بهتر است.
4- اگر بشود آیکون دکمه های تقویم را خودمان انتخاب کنیم بهتر است. مانند SpeedButton
با تشکر

AliReza Vafakhah
یک شنبه 02 بهمن 1390, 14:13 عصر
امروز به یه مشکل تو این کامپوننت برخورد کردم که خوشبختانه بطرف کردم.

مشکل اینه که تابع DecDay که یه پارامتر عددی داره و برحسب مقدار پارامتر روز را کم کرده و تاریخ را نمایش میده . البته با کم کردن روز ، ماه و سال هم کم میشه. مشکل اینجاست که وقتی مثلا تاریخ 1390/11/02 باشه و حالا از این تاریخ 7 روز را توسط تابع DecDay کم کنید ، آن وقت خروجی شما خواهد بود 1390/10/30 و این تاریخ صحیح نیست.

کد زیر را جایگزین کد کامپوننت کنید.


function DecDay(ADate: string; DateKind: TDateKind; ANumberOfDay: integer = 1): string;
var
Year, Month, Day: word;
TempDay: Integer;
begin
SeparateYMD(ADate, Year, Month, Day);

if Day - ANumberOfDay >= 1 then
Dec(Day, ANumberOfDay)
else
begin
if Month > 1 then
begin
{Update Code}
TempDay:= Day {Insert};
Dec(Month);
Day := DaysOfMonths[DateKind, Month];
{Dec Day Now Return True Day}
Dec(Day, Abs(TempDay - ANumberOfDay));{Insert}
end
else
DecMonth(ADate, DateKind, ANumberOfDay);
end;

Result := ConcatenateDate(Month, Year, Month, Day);
end;

masoud_salimy
شنبه 29 بهمن 1390, 21:39 عصر
سلام استاد خرسندی
من زمانی که با دلفی 7 کارمیکردم از کامپوننت شما استفتده کردم و بسیارهم ازش لذت بردم
ازبابت زحمتهاتون ممنونم
حالا که با Delphi XE2 کارمیکنم و کامپوننت رو دراون نصب کردم زمان نصب هیچ خطایی نمیده اما زمانی که میخوام توی برنامه ازش استفاده کنم Error میده
"DCC Fatal Error] Unit1.pas(7): F1026 File not found: 'SolarCalendarPackage.dcu"
لطفاٌ راهنماییم کنید

m-khorsandi
شنبه 29 بهمن 1390, 22:28 عصر
سلام استاد خرسندی
من زمانی که با دلفی 7 کارمیکردم از کامپوننت شما استفتده کردم و بسیارهم ازش لذت بردم
ازبابت زحمتهاتون ممنونم
حالا که با Delphi XE2 کارمیکنم و کامپوننت رو دراون نصب کردم زمان نصب هیچ خطایی نمیده اما زمانی که میخوام توی برنامه ازش استفاده کنم Error میده
"DCC Fatal Error] Unit1.pas(7): F1026 File not found: 'SolarCalendarPackage.dcu"
لطفاٌ راهنماییم کنید


مسير كامپوننت رو به مسير‌های دلفی اضافه كنيد.

masoud_salimy
شنبه 29 بهمن 1390, 22:46 عصر
ممنون که وقت گذاشتین
توی Delphi XE2 چطور باید این کارو بکنم؟

m-khorsandi
شنبه 29 بهمن 1390, 22:58 عصر
Tools Menu -> Options - > Environment Options -> Delphi Options -> Library -> Library Path

در ضمن، من اين كامپوننت رو برای دلفی 7 و 2009 و 2010 تست كردم. نسخه‌ای كه كاملن با XE و XE2 سازگار باشه تا چند روز آينده منتشر ميشه.

AliReza Vafakhah
جمعه 19 اسفند 1390, 14:38 عصر
آقای خرسندی دم عیدی نمی خوای به بچه های برنامه نویس عیدی بدی؟

آقا نسخه جدید رو آپدیت کنید. چندتا مشکل جزئی در نسخه فعلی هست که توسط خودتون حل شدنیه.

تشکــــــــــر

naeemeh
دوشنبه 22 اسفند 1390, 09:13 صبح
با سلام ، من این کامپوننت را روی دلفی 2010 نصب کردم و در نصب آن مشکلی نداشتم ولی وقتی این کامپوننت را بر روی فرم ها می گذارم فونت های نمایشی حالتی غیر از unicode دارند باید چطور حل کنم .

as13851365
پنج شنبه 10 فروردین 1391, 23:42 عصر
Tools Menu -> Options - > Environment Options -> Delphi Options -> Library -> Library Path

در ضمن، من اين كامپوننت رو برای دلفی 7 و 2009 و 2010 تست كردم. نسخه‌ای كه كاملن با XE و XE2 سازگار باشه تا چند روز آينده منتشر ميشه.

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

mojiparadox
یک شنبه 27 فروردین 1391, 10:51 صبح
نسخه‌ای كه كاملن با XE و XE2 سازگار باشه تا چند روز آينده منتشر ميشه.

آقای خرسند! پس فردا میشه 2ماه از این نوشته شما! این چند روزی که فرمودین به پایان نمیرسه؟؟:گیج:

البته اینم بگم که من آخرین آپدیت کامپوننت شما رو دارم توی دلفی XE2 استفاده می‌کنم و هیچ مشکلی هم برای نصب و اجرای کامپوننت و برنامه‌هام ندارم!!

حسین خانی
جمعه 22 اردیبهشت 1391, 08:55 صبح
با سلام خدمت آقای خرسندی

امروز بر حسب نیاز برای استفاده از پارامتر عددی تابع IncDay این کامپوننت، به مشکل مشابه تابع DecDay این دوستمون (که خودشون رفع کردن) برخوردم!!!
کد تابع مربوطه رو دستکاری کردم ولی خروجی درستی نداد.

ممنون میشم این مشکل اصلاح بشه.


امروز به یه مشکل تو این کامپوننت برخورد کردم که خوشبختانه بطرف کردم.

مشکل اینه که تابع DecDay که یه پارامتر عددی داره و برحسب مقدار پارامتر روز را کم کرده و تاریخ را نمایش میده . البته با کم کردن روز ، ماه و سال هم کم میشه. مشکل اینجاست که وقتی مثلا تاریخ 1390/11/02 باشه و حالا از این تاریخ 7 روز را توسط تابع DecDay کم کنید ، آن وقت خروجی شما خواهد بود 1390/10/30 و این تاریخ صحیح نیست.

کد زیر را جایگزین کد کامپوننت کنید.


function DecDay(ADate: string; DateKind: TDateKind; ANumberOfDay: integer = 1): string;
var
Year, Month, Day: word;
TempDay: Integer;
begin
SeparateYMD(ADate, Year, Month, Day);

if Day - ANumberOfDay >= 1 then
Dec(Day, ANumberOfDay)
else
begin
if Month > 1 then
begin
{Update Code}
TempDay:= Day {Insert};
Dec(Month);
Day := DaysOfMonths[DateKind, Month];
{Dec Day Now Return True Day}
Dec(Day, Abs(TempDay - ANumberOfDay));{Insert}
end
else
DecMonth(ADate, DateKind, ANumberOfDay);
end;

Result := ConcatenateDate(Month, Year, Month, Day);
end;

AliReza Vafakhah
جمعه 22 اردیبهشت 1391, 16:28 عصر
با سلام خدمت آقای خرسندی

امروز بر حسب نیاز برای استفاده از پارامتر عددی تابع IncDay این کامپوننت، به مشکل مشابه تابع DecDay این دوستمون (که خودشون رفع کردن) برخوردم!!!
کد تابع مربوطه رو دستکاری کردم ولی خروجی درستی نداد.

ممنون میشم این مشکل اصلاح بشه.

شما یذره نبوغ به خرج بدهید انقدر نیاز نخواهید داشت تا سازنده که انگار هم خیلی سرشون شلوغه ، مشکلات رو رفع کنند.

من الآن از این کامپوننت تو چندتا برنامه هام استفاده کردم و چندتا مشکلاش رو خودم حل کردم

این کد DecDay که من باهاش مشکلی ندارم و البته این رو هم بگم که کد رو عجله ای نوشتم.


function DecDay(ADate: string; DateKind: TDateKind; ANumberOfDay: integer = 1): string;
var
Year, Month, Day: Word;
Y, M, D: string;
TempDay: Integer;
begin

if (ANumberOfDay > 30) then
Exit(ADate);

SeparateYMD(ADate, Year, Month, Day);

if (Day - ANumberOfDay >= 1) then
Dec(Day, ANumberOfDay)
else
begin

if Month > 1 then
begin
{Update Code}
TempDay:= Day {Insert};
Dec(Month);
Day := DaysOfMonths[DateKind, Month];
{Dec Day Now Return True Day}
Dec(Day, Abs(TempDay - ANumberOfDay));{Insert}

if ((Day > 32 {Condions}) or (Day = 0)) then
begin
Dec(Month);
Day := DaysOfMonths[DateKind, Month];
TempDay:= Abs(ANumberOfDay - Day) ;
Dec(ANumberOfDay, TempDay);
Day:= ANumberOfDay;
end;

end
else
begin
{Insert Code at : 1391/01/02 14:25}
if (Day <= ANumberOfDay) and (Month = 1) then {e.g : 1391/01/01}
begin
ADate:= DecMonth(ADate, DateKind);
Day:= ((DaysOfMonths[DateKind, 12]) - ANumberOfDay) + Day;

if ((Day > 32 {Condions}) or (Day = 0)) then
begin
Day := DaysOfMonths[DateKind, 12];
TempDay:= Abs(ANumberOfDay - Day);
Dec(ANumberOfDay, TempDay);
Day:= ANumberOfDay;
end;

end
else
Day:= Day - ANumberOfDay;

SeparateParts(ADate, Y, M, D);
Exit(ConcatenateDate(StrToInt(M), StrToInt(Y), StrToInt(M), Day));
{End of Insert}
end;

end;

Result:= ConcatenateDate(Month, Year, Month, Day);
end;

m-khorsandi
دوشنبه 05 تیر 1391, 11:16 صبح
تقويم ايرانی/ميلادی نسخه 3.0
Solar Calendar 3.0
(http://sourceforge.net/projects/solarcalendar/)

XE
XE2
DataSet
New Interface
New Functionalities

سيد مجتبي هاشمي
سه شنبه 06 تیر 1391, 15:29 عصر
با سلام.
جناب خرسندي با تشكر مجدد بخاطر آپلود نسخه جديد تقويم.
زماني كه ميخوام دانلودش كنم وارد اين صفحه ميشه كه در تصوير زير ميبينيد و ديگه گزينه اي براي دانلود نداره.
در اين صفحه چي كار بايد كرد تا دانلود بشه.؟
88776

m-khorsandi
سه شنبه 06 تیر 1391, 15:46 عصر
توی همین عکس، زیر تب شیتها دلیل عدم دانلود رو نوشته،
فقط کافیه که روی دلیلش کلیک کنی.

پوریا_م
چهارشنبه 07 تیر 1391, 16:05 عصر
با سلام
برای نصب در دلفی 2010 بعد از اینکه Compile میزنم، این خطا رو میده :
[DCC Error] SolarCalendarPackage.pas(٣٢٩٢): E٢٠٠٣ Undeclared identifier: 'FormatSettings'
لطفا راهنمایی بفرمایید.

m-khorsandi
چهارشنبه 07 تیر 1391, 19:10 عصر
مشكل بر طرف شد، لطفاً دوباره دانلود كنيد.
Solar Calendar 3.0.1 (http://sourceforge.net/projects/solarcalendar/)

ahmadbh
چهارشنبه 07 تیر 1391, 19:38 عصر
با تشکر
آیا در دلفی 7 میشه نصب کرد ؟

m-khorsandi
چهارشنبه 07 تیر 1391, 20:46 عصر
بله،
دلفی 7، 2007، 2009، 2010، XE و XE2 .

ayub_coder
پنج شنبه 08 تیر 1391, 23:39 عصر
پیغام
[DCC Error] E1026 File not found: 'Calendar_Images.res'
میده
Delphi XE2

m-khorsandi
جمعه 09 تیر 1391, 10:44 صبح
فايل Calendar_Images.res بايد داخل فايل Solar_Calendar_Package_v3.0.1.rar باشه.

ayub_coder
جمعه 09 تیر 1391, 12:46 عصر
موقعی رو فرم قرار میدهم فارسی به خوبی نمایش می ده ولی موقع اجرا کلمات به صورت ناخوانا دیده می شوند. میشه راهنمایی کنید؟ آیا در محیط دلفی (XE2) تنظیم خاصی وجود داره. چون وقتی سمپل خود شما رو اجرا می کنم مشکلی وجود نداره؟:افسرده:

m-khorsandi
شنبه 10 تیر 1391, 10:08 صبح
تنظیمات ویندوز رو برام بفرستید

tadeh2010
پنج شنبه 15 تیر 1391, 04:12 صبح
سلام آقای خرسندی
از زحماتتان متشکریم
ولی بازهم ببرای تاریخ میلادی مشکل دارد اصلا چرا از encodedate در کامپوننتان استفاده نمی کنید؟
یا اگر هم نمیتوانید این جوری مشکل را حل بکنید مثل تاریخ شمسی باهاش برخورد بکنید یعنی از نوع رشته بگیریدش و خلاص
ممنون

m-khorsandi
پنج شنبه 15 تیر 1391, 10:07 صبح
با چه نوع فرمتی مشكل داره؟

tadeh2010
پنج شنبه 15 تیر 1391, 16:58 عصر
موقعی که ویندوز ما فرمت تاریخ میلادیش فرق بکند با مشکل مواجه می شود.
فکر بکنم در داخل کامپوننت فرمت تاریخ میلادی yyyy/mm/dd باشد پس موقعی که ویندوز ما فرمت تاریخش به صورت dd/mm/yyyy باشد با مشکل مواجه می شود
یعنی موقعی که بر روی دکمه solardatepiker کلیک می کنیم (موقعی که مقدار text آن خالی است مشکلی ندارد) مقدار text در کامپوننت به تاریخ میلادی با فرمت ثابت تبدیل می شود
و در این هنگام سیستم تاریخ میلادی را نمی تواند شناسایی بکند و error می دهد، فکر بکنم با استفاده از تابع encodedate مشکل حل بشود ولی قبل از آن نیاز به شناسایی و جدا کردن روز و ماه و سال میلادی و تبدیل آنها به مقدار عددی می باشد.
موفق باشید از زحماتتان کمال تشکر را دارم.

takfanar
یک شنبه 18 تیر 1391, 15:22 عصر
سلام من یک برنامه دارم که بارها و بارها از نسخه قبلی درش استفاده شده میتونم ببا دست کاری کد های این جدیده رو جای گزین کنم؟مثلا با نوت پد؟

tadeh2010
جمعه 17 شهریور 1391, 22:24 عصر
سلام آقای
ehstrn2010

موقع نصب کامپوننت error می دهد.
PngImage_29 RCData "..\\..\\..\\Desktop\\1\\29.png"
عکسها را نمی شناسد.

ariobarzan
یک شنبه 26 شهریور 1391, 14:02 عصر
با سلام و تشكر
مطمئن هستيد كه توي دلفي 7 نصب ميشه؟
ارور زياد ميده.

ariobarzan
یک شنبه 26 شهریور 1391, 14:09 عصر
[Error] SolarCalendarPackage.pas(5430): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5430): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5753): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5753): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5965): Object or class type required
[Error] SolarCalendarPackage.pas(5965): Object or class type required
[Error] SolarCalendarPackage.pas(5965): Incompatible types: 'TButtonType' and 'Integer'
[Error] SolarCalendarPackage.pas(5971): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5971): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5977): Undeclared identifier: 'GradientFillCanvas'
[Fatal Error] SolarCalendarPack.dpk(39): Could not compile used unit 'SolarCalendarPackage.pas'

Mahmood_M
جمعه 28 مهر 1391, 03:02 صبح
اول یک تشکر ویژه بابت کامپوننت

یک باگ کوچیک ! :
می خوام با استفاده از TSolarMonthCalender و مقادیر زیر :

MC.DayName + ' ' + IntToStr(MC.Day) + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);
یک رشته مثل این بسازم : " پنجشنبه 27 مهرماه 1391 "
اما رشته ای که ساخته میشه اینه : " جمعه 0 0 Sut " !
به نظر میاد در هنگام گرفتن مقدار day این مشکل پیش میاد ، اگر این مقدار رو از دستورات بالا حذف کنیم :

MC.DayName + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);
این رشته ساخته میشه : " پنجشنبه مهرماه 1391 "

به نظر میرسه موقع گرفتن مقدار day مشکلی به وجود میاد

پ.ن : از دلفی 2010 و ویندوز 7 نسخه ی Ultimate 64 Bit استفاده می کنم

SayeyeZohor
پنج شنبه 04 آبان 1391, 10:44 صبح
با سلام خدمت آقاي محمد خرسندي
يك ايراد يا باگ
از تاريخ 1399 به بعد تاريخ 1100 رو نشون ميده و ميره از 1300 شروع ميكنه ...

SayeyeZohor
پنج شنبه 04 آبان 1391, 11:33 صبح
اول یک تشکر ویژه بابت کامپوننت

یک باگ کوچیک ! :
می خوام با استفاده از TSolarMonthCalender و مقادیر زیر :
MC.DayName + ' ' + IntToStr(MC.Day) + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);

یک رشته مثل این بسازم : " پنجشنبه 27 مهرماه 1391 "
اما رشته ای که ساخته میشه اینه : " جمعه 0 0 Sut " !
به نظر میاد در هنگام گرفتن مقدار day این مشکل پیش میاد ، اگر این مقدار رو از دستورات بالا حذف کنیم :
MC.DayName + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);


حدس من اينه كه ايراد تو اين function باشه :

function TSolarMonthCalendar.GetDay: integer;
begin
//ResetYMD(Text, FCurrYear, FCurrMonth, FCurrDay);
ResetYMD(OutDate, FCurrYear, FCurrMonth, FCurrDay);
if FCurrDay > 0 then
Result := FCurrDay
else
Result := 0;
end;


در اين function با تغيير متغير Text به OutDate مشكل حل مي شه .
شايد كامپوننتي كه غير اين مورد ، موردهاي ديگه اي در آن اصلاح كردم رو هم آپلود كنم
فعلا كه سرور برنامه نويس سرش شلوغه

SayeyeZohor
دوشنبه 15 آبان 1391, 16:20 عصر
با سلام خدمت دوستان
ورژن اصلاح شده Solar_Calendar_Package_3_0_2 (http://s1.picofile.com/file/7547624515/Solar_Calendar_Package_3_0_2.rar.html) رو براي دانلود گذاشتم تا بلكه زودتر ايرادهاش رفع بشه و يك تقويم كاملاً حرفه اي فارسي داشته باشيم
البته بايد از آقاي خرسندي عزيز تشكر كرد

ايرادات مشاهده شده توسط من :
1- از تاريخ 1399 به بعد تاريخ 1100 رو نشون ميده و ميره از 1300 شروع ميكنه ...

البته اگه آقاي تاجیک لطف كنند و اين پست رو پاك نكنند

0armin0
شنبه 27 آبان 1391, 23:31 عصر
سلام برای دلفی xe3 سازگار هست؟:اشتباه:

khoshblagh
یک شنبه 05 آذر 1391, 09:55 صبح
با سلام خدمت استاد خرسندی و سایر اساتید
ظاهرا با ویندوز سون مشکل دارد . ابا سایر دوستان به این مشکل برخورد کرده اند؟ راه حل ان چیست؟ متشکرم

mohsen24000
دوشنبه 06 آذر 1391, 10:58 صبح
ظاهرا با ویندوز سون مشکل دارد . ابا سایر دوستان به این مشکل برخورد کرده اند؟
اولا که چه مشکلی!!؟
و ثانیا بنده با آخرین ورژن این کامپوننت تحت ویندوز 7 و دلفی 2010 بدون مشکلی ازش استفاده می کنم.
در ضمن با تغییراتی اندک قابلیت نمایش تعطیلات رسمی را هم اضافه کردم.

m.abbasi.kia
یک شنبه 15 بهمن 1391, 14:18 عصر
دوستان من به دلایلی مجبورم اینو تو دلفی 7 استفاده کنم موقع نصب این ارور ها رو میده کسی میدونه چطور باید برطرفشون کرد؟

[Error] SolarCalendarPackage.pas(5430): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5430): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5753): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5753): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5965): Object or class type required
[Error] SolarCalendarPackage.pas(5965): Object or class type required
[Error] SolarCalendarPackage.pas(5965): Incompatible types: 'TButtonType' and 'Integer'
[Error] SolarCalendarPackage.pas(5971): Undeclared identifier: 'GradientFillCanvas'
[Error] SolarCalendarPackage.pas(5971): Undeclared identifier: 'gdVertical'
[Error] SolarCalendarPackage.pas(5977): Undeclared identifier: 'GradientFillCanvas'
[Fatal Error] SolarCalendarPack.dpk(39): Could not compile used unit 'SolarCalendarPackage.pas'

zahra_no
پنج شنبه 03 اسفند 1391, 15:18 عصر
آقای خرسندی، آیا این کامپوننت برای XE3 هم جواب میده؟؟
چون موقع نصب ارر های زیادی گرفته میشه

Mahdi.Delphi
سه شنبه 08 اسفند 1391, 11:13 صبح
سلام

من موقع نصب آخرین ورژن این کامپوننت به مشکل برخوردم.

از دلفی 7 و ویندوز سون استفاده میکنم.

این خطاها وجود دارد:

100576

کسی از دوستان چنین مشکلی نداشته؟:اشتباه:

ممنون

Mahdi.Delphi
شنبه 12 اسفند 1391, 14:26 عصر
یعنی هیچکس همچین مشکلی نداره یا نمی دونه مشکل از کجاست ؟!http://www.pic4ever.com/images/127fs4573872.gif

azygole
شنبه 19 اسفند 1391, 23:51 عصر
سلام وقتی با این کامپوننت یک روز یک روز اضافه می کنم 30 اسفند رو حساب نمی کنه :ناراحت: می تونید راهنماییم کنید؟

SayeyeZohor
جمعه 25 اسفند 1391, 16:23 عصر
سلام وقتی با این کامپوننت یک روز یک روز اضافه می کنم 30 اسفند رو حساب نمی کنه می تونید راهنماییم کنید؟




نقل قول: كامپوننت تقويم شمسی
با سلام خدمت دوستان
ورژن اصلاح شده Solar_Calendar_Package_3_0_2 رو براي دانلود گذاشتم تا بلكه زودتر ايرادهاش رفع بشه و يك تقويم كاملاً حرفه اي فارسي داشته باشيم
البته بايد از آقاي خرسندي عزيز تشكر كرد

ايرادات مشاهده شده توسط من :
1- از تاريخ 1399 به بعد تاريخ 1100 رو نشون ميده و ميره از 1300 شروع ميكنه ...

البته اگه آقاي تاجیک لطف كنند و اين پست رو پاك نكنند


سلام اين نسخه اصلاح شده رو نصب كنين ببينين مشكلتون حل مي شه يا نه؟
Solar_Calendar_Package_3_0_2 (http://s1.picofile.com/file/7547624515/Solar_Calendar_Package_3_0_2.rar.html)

hp1361
شنبه 26 اسفند 1391, 07:30 صبح
سلام

آیا نسخه سازگار با xe3 هم هست؟

ممنون

Mahdi.Delphi
چهارشنبه 30 اسفند 1391, 02:07 صبح
سلام کسی نسخه سازگار با دلفی 7 رو داره ؟! این نسخه نهایی رو دلفی 7 جواب نمیده!!!http://www.pic4ever.com/images/4fvgdaq_th.gif توی سایت sourceforge هم فقط آخرین ورژن موجوده و لینک ورژن های قبلی که تو همین تاپیک هست هم به همون ورژن نهایی منتهی میشهhttp://www.hummer4x4offroad.com/forum/images/smilies/hanghead.gif ممنون

tadeh2010
چهارشنبه 30 اسفند 1391, 22:01 عصر
سلام سال نویتان مبارک
خواسته ی شما اشتباه است
این ورژنهای جدید که از این کامپوننت ایجاد شده ، به مرور مشکلات یا باگهای برنامه رفع شده با اینکه هنوز هم کامل نیست
ولی بایستی یک تغییراتی بدهید تا کامپوننت روی دلفی 7 هم نصب بشود ولی باز بهتره سعی بکنید که به دلفی های جدیدتر روی بیاورید
چون من هم مشکلات شما را داشته ام
مثلا دلفی جدیدتر را نداشتم ولی دانلودش کردم
و بعد سیستم ام توانایی کافی برای نصب دلفی جدیدتر را نداشت (حجم درایوهایم کم بود)
یا برنامه ها و کامپوننتهایم را مجبور می شدم تغییر بدهم (مخصوصا استفاده از تابعpchar)
ولی بعدا دیدم این افزایش ورژن می ارزد
مخصوصا اینکه از unicode پشتیبانی می کنند

پس بهتره از دلفی های جدیدتر استفاده بکنید

Delphi_Developer
پنج شنبه 08 فروردین 1392, 05:47 صبح
سلام

تابع ConvertDate رو فقط با monthcalendar میشه انجام داد ؟!! تو کامپوننتهای non-visible نیست هیچ کدوم ؟؟

mahdy.asia
پنج شنبه 29 فروردین 1392, 11:14 صبح
سلام آقای خرسند
من کامپوننت شما را بررسی کردم و تصمیم دارم از این کامپوننت در پروژه های برنامه نویسی استفاده کنم کار بسیار ارزشمندی است انشاء الله موفق باشید
پیشنهاد : جهت کامپوننت دو label در نظر بگیرید جهت عنوان تقویم و نمایش روز هفته جلوی تاریخ مانند تصویر زیر

103017

mahdy.asia
شنبه 07 اردیبهشت 1392, 10:05 صبح
سلام آقای خرسند
یک پیشنهاد جدید : اگر دو رقم اول تاریخ بوسیله یک متغیر حهت راحتی کاربر ثابت شود که کاربر هر بار نیاز نیاز به وارد کردن آن نباشد می تواند در راحتی ورود اطلاعات موثر باشد
مثال : 1392/01/01 رقم 13 ثتبیت شده باشد که کاربر تنها رقم های 92/01/01 را وارد کند

m-khorsandi
شنبه 07 اردیبهشت 1392, 10:09 صبح
سلام آقای خرسند
من کامپوننت شما را بررسی کردم و تصمیم دارم از این کامپوننت در پروژه های برنامه نویسی استفاده کنم کار بسیار ارزشمندی است انشاء الله موفق باشید
پیشنهاد : جهت کامپوننت دو label در نظر بگیرید جهت عنوان تقویم و نمایش روز هفته جلوی تاریخ مانند تصویر زیر

103017



رشته‌ی روز مورد نظر رو میتونید از توابع کامپوننت بگیرید و هر جا که خواستید نمایش بدید

hp1361
شنبه 07 اردیبهشت 1392, 21:40 عصر
سلام مجدد

آقای سازگاری تقویم با دلفی XE3 در دستور کارتون قرار داره؟امیدی هست؟

ممنون

SayeyeZohor
شنبه 07 اردیبهشت 1392, 22:28 عصر
سلام مجدد

آقای سازگاری تقویم با دلفی XE3 در دستور کارتون قرار داره؟امیدی هست؟

ممنون


من نسخه ايشون رو سازگار با XE3 كردم و آپلود مي كنم
103405

از آقاي خرسندي درخواست مي كنم اگه روزي خواستند كامپوننتشون رو ارتقا بدند روي اين نسخه كار كنند چون چند تا باگ رو رفع كردم و اگه زحمت بكشند ، اين كامپوننت رو به بهبود بيشتر مي ره
باز هم از زحمات ايشون ممنون

mahdy.asia
یک شنبه 08 اردیبهشت 1392, 09:33 صبح
رشته‌ی روز مورد نظر رو میتونید از توابع کامپوننت بگیرید و هر جا که خواستید نمایش بدید
سلام آقای خرسند
راهنمای شما رو من مطالعه کردم شما درست می گید اما من منظورم اینه که وقتی برنامه نویس کامپوننت را روی فرم قرار می دهد label های مذکور هم روی فرم قرار بگیرد(کامپوننت ترکیبی) و نیاز به این نباشد که دو کامپوننت label و کامپوننت solar را روی فرم قرار دهد و با هم آنها را تنظیم نماید و با استفاده از توابع لیبل ها را مقدار دهی نماید.

hp1361
یک شنبه 08 اردیبهشت 1392, 10:10 صبح
من نسخه ايشون رو سازگار با XE3 كردم و آپلود مي كنم
103405

از آقاي خرسندي درخواست مي كنم اگه روزي خواستند كامپوننتشون رو ارتقا بدند روي اين نسخه كار كنند چون چند تا باگ رو رفع كردم و اگه زحمت بكشند ، اين كامپوننت رو به بهبود بيشتر مي ره
باز هم از زحمات ايشون ممنون

ممنون میشم لیست تغییراتی که اعمال کردید رو بزارید

ممنون

SayeyeZohor
یک شنبه 08 اردیبهشت 1392, 12:48 عصر
http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=1613160&viewfull=1#post1613160

http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=1616476&viewfull=1#post1616476

http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=1620193&viewfull=1#post1620193

اصلاحات صورت گرفته :


اول یک تشکر ویژه بابت کامپوننت

یک باگ کوچیک ! :
می خوام با استفاده از TSolarMonthCalender و مقادیر زیر :
MC.DayName + ' ' + IntToStr(MC.Day) + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);

یک رشته مثل این بسازم : " پنجشنبه 27 مهرماه 1391 "
اما رشته ای که ساخته میشه اینه : " جمعه 0 0 Sut " !
به نظر میاد در هنگام گرفتن مقدار day این مشکل پیش میاد ، اگر این مقدار رو از دستورات بالا حذف کنیم :
MC.DayName + ' ' + MC.MonthName + ' ' + IntToStr(MC.Year);


حدس من اينه كه ايراد تو اين function باشه :

function TSolarMonthCalendar.GetDay: integer;
begin
//ResetYMD(Text, FCurrYear, FCurrMonth, FCurrDay);
ResetYMD(OutDate, FCurrYear, FCurrMonth, FCurrDay);
if FCurrDay > 0 then
Result := FCurrDay
else
Result := 0;
end;


در اين function با تغيير متغير Text به OutDate مشكل حل مي شه .

و تغييرات گرافيكي و بقيه كه يادم نيست

hp1361
چهارشنبه 01 خرداد 1392, 07:51 صبح
سلام

آقا من این فایل ها رو که دانلود می کنم حالا چه از اینجا و چه از SF در هر دو حالت متون فارسی رو چه در سورسش و چه در نمایشش عجق وجق نشون میده!

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

خداخیرتون بده

hp1361@gmail.com

ممنون

javad3d
سه شنبه 21 خرداد 1392, 07:00 صبح
نقل قول: كامپوننت تقويم شمسی

سلام

من موقع نصب آخرین ورژن این کامپوننت به مشکل برخوردم.

از دلفی 7 و ویندوز سون استفاده میکنم.

این خطاها وجود دارد:

http://barnamenevis.org/attachment.php?attachmentid=100576&d=1361866354

کسی از دوستان چنین مشکلی نداشته؟:اشتباه:

ممنون

ali_abbasi22145
چهارشنبه 22 خرداد 1392, 14:16 عصر
سلام
من دلفی 7 و ویندوز 8 دارم و دقیقا خطا دوستمان javad3d که نشان داده می دهد.
کسی برای دلفی 7 .dpk را دارد که اینجا آپلود کند

kamran_br
جمعه 11 مرداد 1392, 04:51 صبح
سلام من هم در دلفي هم مشكل دوستانم جواد و علي را دارم.لطفا راه حل اين مشكل را عنوان كنيد.در ضمن روزهاي پاييني تقويم با كليك روي آن به روز ماه بعد منتقل مي شود كه ايراد بزرگي است.ممنون ميشم راهنمايي بفرماييد

SayeyeZohor
دوشنبه 14 مرداد 1392, 00:31 صبح
نقل قول: كامپوننت تقويم شمسی

سلام

من موقع نصب آخرین ورژن این کامپوننت به مشکل برخوردم.

از دلفی 7 و ویندوز سون استفاده میکنم.

این خطاها وجود دارد:

http://barnamenevis.org/attachment.php?attachmentid=100576&d=1361866354

کسی از دوستان چنین مشکلی نداشته؟:اشتباه:

ممنون



با سلام
متاسفانه دلفي 7 ندارم و اين نسخه براي دلفي 2010 به بالا از طرف بنده تست شده است

Delphi 2010
شنبه 23 شهریور 1392, 00:04 صبح
با عرض سلام و خسته نباشید خدمت دوستان
و تشکر فراوان خدمت آقای خرسندی
من خودم مدتی هستش شروع کردم به کامپوننت نویسی میدونم چه امر سختی هستش و کمال تشکر رو دارم از آقای خرسندی

یه پیشنهاد دارم ولی نمیدونم دوستان ارائه کردن این پیشنهاد رو یا نه

توی کامپوننت میشه سال رو دستی تغییر بدیم ولی ماه رو نمی تونیم تغییر بدیم
اگه امکان تغییر دستی ماه باشه تو کامپوننت خیلی عالی میشه

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

http://www.up2www.com/uploads/1379103297311.jpg

ATULICUS
چهارشنبه 15 آبان 1392, 11:52 صبح
سلام به همگی !


از دوستان کسی این کامپوننت رو برا XE5 سازگار کرده یا نه !؟

tadeh2010
پنج شنبه 05 دی 1392, 15:37 عصر
سلام استاد گرامی و جناب خرســـنـــدی
به نظر من بهتر است در برنامه تان روز ، ماه و سال به صورت عددی به برنامه پاس داده شود (در حال حاضر فقط مقدار text که از نوع رشته است این کار را می کند).
ولی مشکل فوق (که اگر تاریخ سیستم با یک فرمت دیگر باشد) در داخل کا مپوننت به مشکل بر می خوریم ولی من فکر کردم اگر از طریق سه پارامتر عددی بشود تاریخ را به کامپوننت پاس کرد می توانید در خود کامپوننت از تابع encodedate برای ساخت تاریخ با فرمت سیستم استفاده بکنید .
متشکرم .
سلام بازهم در این مورد به مشکل خوردم
بهتر میدونم رفعش بکنید آقای مهندس
این تصویر را ببینید
من از دیتا سورس تاریخ را از سرور میگیرم
114439

tadeh2010
پنج شنبه 05 دی 1392, 15:55 عصر
با تغییر دادن روال SetInDate به صورت زیر فکر بکنم مشکل حل میشه، آیا درسته؟؟

procedure TCustomSolarCalendar.SetInDate(const Value: String);
var
D:TDateTime;
begin
if Length(Trim(Value)) <> 0 then
begin
if FDateKind = dkGregorian then
begin
{$IFDEF CompilerVersion >= 23}
DecodeDate(StrToDate(FormatDateTime(FormatSettings .ShortDateFormat, StrToDate(Value))), FCurrYear, FCurrMonth, FCurrDay);
{$ELSE}
D:=EncodeDate(FCurrYear, FCurrMonth, FCurrDay);
DecodeDate(StrToDate(FormatDateTime(ShortDateForma t, D )), FCurrYear, FCurrMonth, FCurrDay);
{$ENDIF}

if not CheckInputDate(FCurrYear, FCurrMonth, FCurrDay) then
SeparateYMD(OutDate, FCurrYear, FCurrMonth, FCurrDay)
else
FInDate := Value;

FTopPanel.FYear.Caption := Format(ST_ENGLISHYEAR, [IntToStr(FCurrYear)]);
end
else
begin
SeparateYMD(Value, FCurrYear, FCurrMonth, FCurrDay);

if not CheckInputDate(FCurrYear, FCurrMonth, FCurrDay) then
SeparateYMD(OutDate, FCurrYear, FCurrMonth, FCurrDay)
else
FInDate := Value;

FTopPanel.FYear.Caption := Format(ST_PERSIANYEAR, [IntToStr(FCurrYear)]);
end;

FPrevMenuItem := FCurrMonth;

if FMonthObject = moPopupMenu then
begin
FMenu.Items[FPrevMenuItem - 1].Checked := True;
FMenu.Items[FPrevMenuItem - 1].RadioItem := True;
end
else
if FMonthObject = moComboBox then
FMonthCombo.ItemIndex := FPrevMenuItem - 1;

OutDate := InDate;
MonthChanging();
end;
end;

Mahdi.Delphi
سه شنبه 17 دی 1392, 18:45 عصر
در این کامپوننت برای محاسبه تعداد روزهای بین دو تاریخ تابعی تعریف شده؟

مثلا از 1392/02/31 تا 1390/9/29 چند روزه؟!

یوسف زالی
سه شنبه 17 دی 1392, 19:41 عصر
برای این کار از کدهایی که در تاپیک موجود در امضای من هست استفاده کنید.

fazel-as
دوشنبه 30 دی 1392, 23:25 عصر
سلام
نسخه XE5 هم وجود دارد؟
تشکر

komeyl
چهارشنبه 02 بهمن 1392, 13:07 عصر
دوستان من سلام
این برنامه یک کامپوننت نیست، بلکه یک نمونه برنامه هست که با کدهای مختلفی که طی سرچ هام تو اینترنت پیدا کردم چند سال قبل (دوران دانشجویی) نوشتم و قابلیت تبدیل تاریخ های (شمسی / قمری / و میلادی) به همدیگه رو داره .
البته احتمالا تبدیل به و تبدیل از قمری یکسری مشکلاتی داره که نهایتا منجر به نمایش تاریخ یکی دو روز قبل یا بعد از تاریخ صحیح میشه که با صرف کمی وقت خودتون می تونید درستش کنید.
ضمنا آیکون برنامه در کنار ساعت ویندوز نمایش داده میشه که کد اون هم توی سورس هست و میتونید استفاده کنید.
امیدوارم لذت ببرید.

اگه دوست داشتید میتونید برای سلامتی امام زمان و همه افرادی که تو نوشتن کدهای این نرم افزار دست داشتن یه صلوات بفرستید، خصوصا اینکه تبدیل به تاریخ قمری خیلی سخت تو اینترنت گیر میاد.

ایمیل : KomeylWorld@Gmail.Com

Mahdi.Delphi
یک شنبه 13 بهمن 1392, 23:42 عصر
برای این کار از کدهایی که در تاپیک موجود در امضای من هست استفاده کنید.

سلام

میشه برای محاسبه تعداد روزها بین دو تاریخ شمسی ابتدا اون دو تاریخ رو به میلادی تبدیل کرد بعد با استفاده از تابع DaysBetween از یونیت DateUtils تعداد روزها رو محاسبه کرد؟ :متفکر:

تابعی که شما برای محاسبه تعداد روزها بین دو تاریخ شمسی استفاده کردین:

function Date_DaysBetween(Dt1, Dt2: string; DateBase: TDateBase): integer;
var
SYear1: integer;
SYear2: integer;
i, Day: integer;
X1, X2: integer;
begin
if DateBase = dbSolar then
begin
SYear1 := StrToInt(Copy(Dt1, 1, 4));
SYear2 := StrToInt(Copy(Dt2, 1, 4));

Day := 0;
for i := SYear1 +1 to SYear2 -1 do
Day := Day +Date_DaysPerYear(i, dbSolar);

X1 := Date_DaysOfYear(Dt1, dbSolar);
X2 := Date_DaysOfYear(Dt2, dbSolar);
Result := Day + X2 -X1 +IfThen(SYear1 = SYear2, 0, Date_DaysPerYear(SYear1, dbSolar));
end

else
Result := DaysBetween(StrToDate(Dt1, FormatSetting), StrToDate(Dt2, FormatSetting));
end;

یوسف زالی
دوشنبه 14 بهمن 1392, 09:15 صبح
می شه. همین کد هم همین کار رو می کنه.
نکته تبدیل درست تاریخه.

Mahdi.Delphi
سه شنبه 15 بهمن 1392, 12:02 عصر
می شه. همین کد هم همین کار رو می کنه.

آخه توی کد شما اگه DateBase از نوع dbSolar باشه از طریق اون حلقه FOR و با روش متفاوتی محاسبات رو انجام میده!


نکته تبدیل درست تاریخه.

یعنی اگه اول تاریخ ها رو میلادی کنیم و بعد از DaysBetween استفاده کنیم ممکنه مشکل پیش بیاد؟

اگه تاریخ ها درست تبدیل بشن قاعدتاً نباید مشکلی باشه!!!

joker
دوشنبه 21 بهمن 1392, 17:04 عصر
سلام
نسخه XE5 هم وجود دارد؟
تشکر

امروز سوئچ کردم روی xe5 و دیدم ی کوچولو مشکل داشت برای سازگاری با xe5
تغییرات در حد تبدیل smallint به integer و اضافه کردن یک FormatSettings


DecodeDate(StrToDate(FormatDateTime(FormatSettings .ShortDateFormat, StrToDate(Value))), FCurrYear, FCurrMonth, FCurrDay);
{$ELSE}
DecodeDate(StrToDate(FormatDateTime(FormatSettings .ShortDateFormat, StrToDate(Value))), FCurrYear, FCurrMonth, FCurrDay);

حل شد و الان دارم از این تقویم خوب در xe5 استفاده میکنم
فولدر تغییر یافته سورسی که از sf.net دریافت شده را ضمیمه میکنم ، ایشالا که مشکلی نباشه و کار دوستان راه بیفته

SayeyeZohor
دوشنبه 05 اسفند 1392, 16:05 عصر
با سلام خدمت دوستان


نسخه Solar Calendar مخصوص دلفی XE5 ، XE4 ، XE3 , .... رو براتون قرار می دم تغییرات اعمال شده رو درسورس برنامه ذکر کردم

http://barnamenevis.org/images/attach/zip.gif Solar_Calendar_Package_4.0.0 (http://uplod.ir/tbnq5i8iijac/Solar_Calendar_Package_4.0.0.rar.htm) ویرایش شده در تاریخ 05-12-1392 توسط SayeyeZohor

mehdi_gh125
سه شنبه 12 فروردین 1393, 17:01 عصر
با عرض سلام و احترام
ضمن تشکر خواهشمند ه ام طریقه نصب solar_calendar را در XE4 توضیح دهید من در حین نصب با خطا مواجه میشم ، فکر کنم روند نصب و اشتباه انجام میدم با تشکر فراوان.

firststep
پنج شنبه 14 فروردین 1393, 12:06 عصر
چه خطایییی؟

mehdi_gh125
پنج شنبه 14 فروردین 1393, 14:12 عصر
با سلام عکس خطا تقدیم حضور می گردد:
117566

101101000
جمعه 15 فروردین 1393, 12:04 عصر
با سلام و تبریک سال نو و خسته نباشید به همه دوستان
من این کامپوننت رو با یه سری قابلیت های نمایشی و امکانات بهتر تغییر دادم و هم تو دلفی xe, xe2, xe3, xe4,xe5 تست شده و کار میکنه.

فقط ذکر میکنم که به Alpha Control نیاز داره. اگر دوستان تمایل داشتند پیام خصوصی پست الکترونیک بدن براشون ارسال کنم.

117596

ATULICUS
شنبه 16 فروردین 1393, 20:05 عصر
گر دوستان تمایل داشتند پیام خصوصی پست الکترونیک بدن براشون ارسال کنم.

چه کاریه دوست عزیز
همین جا اتچ کن ، اگه ایرادی هم داشته باشه ، دوستان میگن !


به نظر من قشنگ شده
مدتهاست دنبال یه planner یا month calendar زیبا می گردم ، اما متاسفانه روی ظاهر کامپوننت ها اونجور که باید کار نمیشه !

101101000
شنبه 16 فروردین 1393, 21:34 عصر
چشم این هم خدمت شما دوست عزیز و دیگر دوستان
117634

101101000
شنبه 16 فروردین 1393, 21:36 عصر
117635

خدمت شما دوست عزیز

mehdi_gh125
یک شنبه 17 فروردین 1393, 21:31 عصر
117635

خدمت شما دوست عزیز
با سلام
ضمن تشکر باید به عرض برسونم که من نصب کردم و دقیقا solar calendar به دلفی xe4 من اضافه شد اما زمانی که run میشه با خطای زیر مواجه میشم لطفا راهنمایی کنید ممنون میشم.
Incompatible types: 'SmallInt' and 'Integer' در خط OnChangingEx := YearUpDownChange .

mmohsenifar
پنج شنبه 01 خرداد 1393, 20:32 عصر
سلام دوست عزیز
من چجوری می تونم فونت TSolarMonthCalander را بزرگ تر کنم.
در ضمن با اینکه تو سیستم من اونو بصورت کامل نشون میده در سیستم دیگه با همین رزولیشن کوچکتر میشه و با Scroll Bar باید به روز مورد نظر خودم برم.

SayeyeZohor
پنج شنبه 01 خرداد 1393, 22:28 عصر
سلام دوست عزیز
من چجوری می تونم فونت TSolarMonthCalander را بزرگ تر کنم.
در ضمن با اینکه تو سیستم من اونو بصورت کامل نشون میده در سیستم دیگه با همین رزولیشن کوچکتر میشه و با Scroll Bar باید به روز مورد نظر خودم برم.


می تونی تو سورس دستکاری انجام بدی و تنظیمات دلخواهتو اعمال کنی

mmohsenifar
جمعه 02 خرداد 1393, 12:39 عصر
می تونی تو سورس دستکاری انجام بدی و تنظیمات دلخواهتو اعمال کنی

میشه بیشتر توضیح بدین؟

سيد مجتبي هاشمي
پنج شنبه 22 خرداد 1393, 22:59 عصر
با سلام خدمت دوستان و جناب آقاي خرسندي.
سال نو همه دوستان مبارك.
حدودا دو سالي بود كه ديگه برنامه نويسي انجام ندام اما امروز خواستم دوباره شروع كنم و برنامه اي بنويسم كه در زمان نصب تقويم مشكلي پيش اومد. از ش عكس گرفتم لطفا راهنمايي كنيد چه طور حلش كنم.
لطفا كامل راهنمايي كنيد چون اولين بار هست كه XE4 رو نصب كردم و مدتي هم هست كار نكردم تقريبا همه چيز يادم رفته. با تشكر.

من پس از دانلود تقويم شمسي از مسير file >> open >> SolarCalendarPack_XE2.dpk و كليك بر روي دكمه open تصوير زير رو بهم نشون داد.

120142

و پس از زدن دكمه OK تصوير زير نمايش داده ميشود.

120143

و در دلفي 7 خطاي زير را نمايش ميدهد كه يك فايل را نميتواند پيدا كند.

120152

لطفا راهنمايي كنيد چطور مشكل راحل كنم.

m-khorsandi
جمعه 23 خرداد 1393, 19:11 عصر
این خطاها هیچکدوم ربطی به این کامپوننت ندارند، شما یونیتهایی رو داخل سورس کامپوننت دلفی استفاده کردید که اول ربطی به سورس ندارند و دوم در حال حاضر یا در IDE شما نصب نیستند یا مسیرشون وجود نداره یا ....
منظورم sEdit و acnt_DelphiXE2_R است.

mjnikbn
شنبه 12 مهر 1393, 20:52 عصر
در دلفی 7 خطای
FormatSettings
را می دهد

mmohsenifar
شنبه 26 مهر 1393, 21:29 عصر
سلام
من تو دلفی XE5 وقتی میخوتم نصبش کنم خطای ShortDateFormat می ده باید چکر کنم؟ یکی راهنمایی کنه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

nice boy
پنج شنبه 08 آبان 1393, 08:23 صبح
سلام دوستان
من از این کامپوننت در XE3 به بعد استفاده می کنم در موقع ارتباط با LiveBinding مشکل داره
یعنی اگر بخواهیم اون رو به یک BindSourceDB وصل کنیم درست عمل نمی کنه.
آیا کسی با این مشکل مواجه شده.

pandco
یک شنبه 18 آبان 1393, 18:12 عصر
با سلام

من موقع نصب آخرین ورژن این کامپوننتSolar_Calendar_Package_3.0.2 به مشکل برخوردم. ولي در نصب ورژن 2.27 مشكلي ندارم براحتي نصب ميشه و كار ميكنه.

از دلفی 7 و ویندوز xp استفاده میکنم.

خطاي زير بوجود مياد :
125462

چيكار ميتونم براي رفع مشكل بكنم ؟

ممنون از توجه دوستان

pandco
یک شنبه 18 آبان 1393, 18:22 عصر
با اين مشكيلم حل شد ولي بايد SolarCalendarPackage.pas رو در پروژه add كنيد.

125463

ممنون

touzih
جمعه 14 آذر 1393, 11:50 صبح
سلام دوستان . من واسه تقویم فارسی ار solarcalender 3.1 استفاده میکنم. این کامپوننت با فارسی کردن ویندوزم حللت حروفش درست میشد و فارسی میشد. اما الان مدتی هست که با فارسی کردن ویندوز فارسی نمیشه. میخواستم بینم کسی راه حلی داره پیشنهاد کنه به من؟

touzih
جمعه 14 آذر 1393, 11:53 صبح
البته از دلفی XE2 استفاده میکنم :(

tadeh2010
جمعه 01 اسفند 1393, 10:56 صبح
سلام این error چیه؟
128658

tadeh2010
جمعه 01 اسفند 1393, 11:04 صبح
سلام توی این قسمتش ایراد رخ میده
TCustomSolarCalendar.MonthChanging

tadeh2010
جمعه 01 اسفند 1393, 11:12 صبح
این دوتا خط رو غیر فعال کردم خطا نداد
اینا توابع چیکار میکنن؟
مشکلشون چی بوده؟

if FMonthObject <> moNone then
begin
// FillPrevMonthDayCells();
// FillNextMonthDayCells();
end;

tadeh2010
جمعه 01 اسفند 1393, 11:36 صبح
آهان
وقتی از MonthClalendar استفاده میکنیم
و خاصیت DateKind اش روی dkSolar میباشد
و بعدش تغییر پیدا میکند به dkGregorian (که من این عمل را در Event OnCreate فرم ام گزاشته ام)
روزهای پایانی ماه میلادی قبلی و روزهای پایانی ماه میلادی بعدی را در خانه های خالی پر میکند
نه؟
فکر بکنم یه مشکلی در مطابقتش با سال 2015 رخ میدهد!
چون برنامه ام بعد از فوریه 2015 این ایراد رو داد.
کسی به این مشکل بر نخورده؟
خوب دیر یا زود بقیه هم به این مشکل بر می خورین یا شاید متوجه نشدین و سندهاتون داره اشتباه می خوره
ولی چرا به من ایراد اجرایی داده و به شما نه!!:متفکر:

m-khorsandi
یک شنبه 03 اسفند 1393, 14:22 عصر
آهان
وقتی از MonthClalendar استفاده میکنیم
و خاصیت DateKind اش روی dkSolar میباشد
و بعدش تغییر پیدا میکند به dkGregorian (که من این عمل را در Event OnCreate فرم ام گزاشته ام)
روزهای پایانی ماه میلادی قبلی و روزهای پایانی ماه میلادی بعدی را در خانه های خالی پر میکند
نه؟
فکر بکنم یه مشکلی در مطابقتش با سال 2015 رخ میدهد!
چون برنامه ام بعد از فوریه 2015 این ایراد رو داد.
کسی به این مشکل بر نخورده؟
خوب دیر یا زود بقیه هم به این مشکل بر می خورین یا شاید متوجه نشدین و سندهاتون داره اشتباه می خوره
ولی چرا به من ایراد اجرایی داده و به شما نه!!:متفکر:

سلام
مشکلی که شما نوشتید رو من بعد از بررسی مشاهده نکردم، از کدوم نسخه‌ی کامپوننت و دلفی استفاده می‌کنید؟

tadeh2010
دوشنبه 04 اسفند 1393, 00:03 صبح
از نسخه 3.0.1 کامپوننت شما که از آدرس
http://sourceforge.net/projects/solarcalendar
دانلودش کردم
و دلفی 2010
و ویندوز 7 که فارسی رو ادد کردم و تاریخش هم فارسیه.

hadisalahi2
دوشنبه 04 اسفند 1393, 11:49 صبح
سلام
من توی XE2 نصب کردم و مشکلی نداشت
اما متاسفانه تبدیلات تاریخ و محاسباتش اشتباهه

مخصوصا در افزودن روز یا ماه به یک تاریخ خاص

ali3tareh
سه شنبه 12 اسفند 1393, 15:23 عصر
با سلام
لطفا راهنمایی کنید وقتی در xp نصب می کنم فونتها رو درست نشان می ده(هنگام اجرا)ولی در ویندوز 7و8 درست نشان نمی ده.
با تشکر

Valadi
سه شنبه 12 اسفند 1393, 19:17 عصر
با سلام
در نسخه XE7 نصب نشد و مشكل داره
129059

nice boy
چهارشنبه 13 اسفند 1393, 17:00 عصر
با سلام
در نسخه XE7 نصب نشد و مشكل داره

خط زیر رو اضافه کنید درست میشه

{$IFDEF VER280}
{$DEFINE CompilerVersion = 28}
{$ENDIF}

Valadi
جمعه 15 اسفند 1393, 20:05 عصر
با تشكر
اما دو تا ايراد ديگه هم داره البته در XE7
129194


129195

nice boy
جمعه 15 اسفند 1393, 21:00 عصر
با تشكر
اما دو تا ايراد ديگه هم داره البته در XE7

ایراد اول به خاطر این هست که تایع YearUpDownChange یک پارامتر از نوع Smallint داره که باید به Integer تغییرش بدید درست میشه
مورد دوم اشکال نیست دوباره نصبش کنید درست میشه

farzadkamali
چهارشنبه 16 اردیبهشت 1394, 22:42 عصر
با سلام خدمت دوستان
نسخه سازگار این کامپوننت رو با دلفی xe8 که تازه اومده ندارین؟

Mahmood_M
پنج شنبه 17 اردیبهشت 1394, 01:11 صبح
ضمن تشکر از جناب خرسندی
تابع IncMonth از این کامپوننت باید اصلاح بشه ، اگر تعداد ماه ها زیاد باشه ، نتیجه ی درستی نمیده
من به صورت زیر اصلاحش کردم :
function IncMonth(ADate: string; DateKind: TDateKind; ANumberOfMonth: integer = 1): string;
var
Year, Month, Day: word;
begin
SeparateYMD(ADate, Year, Month, Day);

Inc(Year, (ANumberOfMonth div 12));
Inc(Month, (ANumberOfMonth mod 12));
if Month > 12 then
begin
Inc(Year);
Month := Month mod 12;
end;

if Day > DaysOfMonths[DateKind, Month] then
Day := DaysOfMonths[DateKind, Month];

Result := ConcatenateDate(Month, Year, Month, Day);
end;

می تونید در سورس کامپوننت اعمال کنید

موفق باشید

hadisalahi2
پنج شنبه 17 اردیبهشت 1394, 19:53 عصر
تابع افزودن روزش هم درست کار نمیکنه
اونم باید اصلاح بشه

Delphi_Developer
جمعه 18 اردیبهشت 1394, 17:59 عصر
وقتی که هر بار توی DatePicker تاریخ رو انتخاب می کنیم یه بار Form_Activate اتفاق می افته ! :(

takfanar
چهارشنبه 30 اردیبهشت 1394, 14:15 عصر
ببخشید کسی میتونه این رو با xe8 هماهنگ کنه؟

mahdisam
یک شنبه 10 خرداد 1394, 22:35 عصر
خواهشا کمک کنید .. کتمپوننت نصب میشه ..اما این ارور رو میده ..کمک کنید چه کنیم .

imanpadid
چهارشنبه 03 تیر 1394, 15:06 عصر
با سلام
چطور میشه مقدار caption یک label رو تاریخ شمسی گذاشت.من کامپونت Solar calander برای دلفی XE7 رو نصب کردم و کد زیر را در دکمه قرار دادم ولی اشتباه نشان می دهد ( بعد گذشت یک یا چند روز) و می خواهم تاریخی شمسی روز جاری که نوشته جلوی امروز در کامپونت می باشد و صحیح است عنوان برچسبم قرار گیرد . با تشکر
Label1.Caption:=SolarMonthCalendar1.SolarDate;

132572

pezhvakco
چهارشنبه 03 تیر 1394, 17:03 عصر
شاید

Label1.Caption := SolarMonthCalendar.DayName;

imanpadid
پنج شنبه 04 تیر 1394, 07:32 صبح
شاید

Label1.Caption := SolarMonthCalendar.DayName;


تابع dayname روز هفته مانند "سه شنبه" و تابع monthname هم نام ماه مانند "خرداد ماه" را بر میگرداند و جالب است که مقابل امروز درست تاریخ نوشته می شود ولی تابع آن solardate نیست :متفکر:. اگه کمک کنید ممنون میشم.

pezhvakco
پنج شنبه 04 تیر 1394, 19:35 عصر
تابع dayname روز هفته مانند "سه شنبه" و تابع monthname هم نام ماه مانند "خرداد ماه" را بر میگرداند
درسته
یادم رفته بود توابع این ابزار

Label1.Caption := SolarMonthCalendar1.GetDateWithDiv('/');

imanpadid
شنبه 06 تیر 1394, 07:37 صبح
درسته
یادم رفته بود توابع این ابزار

Label1.Caption := SolarMonthCalendar1.GetDateWithDiv('/');



با سلام.ممنون از راهنمایی شما
در پست هایی سرچ کردم و مشکل با کد دیگیری نیز حل می شود به صورت زیر.بازم ممنون از راهنمایی و لطف شما


Label1.Caption:=SolarMonthCalendar1.OutDate;

MRMKOBRA@0011
چهارشنبه 10 تیر 1394, 01:53 صبح
درود...
دوستان من یکی رو دانلود کردم ولی واسه xe2 بود واسه دلفی 7 نیستش این کامپوننت؟
اگه یکی داره که مشکلاتش رو هم حل کرده و خودش استفاده میکنه به منم بده لطفا کارم گیره همین امشب میخوام :( ...

خیلی ممنون میشم اگه یکی آخرین ویرایش این کامپوننت رو برای دانلود بزاره :x

pezhvakco
چهارشنبه 10 تیر 1394, 13:27 عصر
دوستان من یکی رو دانلود کردم ولی واسه xe2 بود واسه دلفی 7 نیستش این کامپوننت؟
خوب یکی رو دانلود کنید که برای دلفی 7 باشه .


یکی آخرین ویرایش این کامپوننت رو برای دانلود بزاره
نیاز نیس شاخ غول بشکنی => در تایپیک های گذشته جستجو نمایید و بیابید

آخرین ها برای دلفی های آخری است و نه ابتدایی

نسخه 2.27 رو میدونم برای دلفی 7 کار میکرد

a.ashkani90@gmail.com
پنج شنبه 11 تیر 1394, 17:14 عصر
سلام
من یکسری کامپوننت تقویم شمسی و منوی عمودی که در کنار پنجره قرار می گیرد از قبیل DevExpress VCL 14.1.2 ، KAPDatePackD2007DemoVersion، hm_farsicalendar (www.butm.ir (http://www.butm.ir)) ، XCalendarXE6 ، Solar_Calendar_Package_3.0.1 و solar و ... گرفتم ولی هیچکدام روی RAD Studio XE8 که نصب کردم و سعی می کنم برنامه های دلفی با آن بنویسم، کار نمی کنند لطفاً راهنمائی فرمائید
ضمناً من در زمینه کامپیوتر و برنامه نویسی حرفه ای نیستم (چون رشته ام مکانیک است)

mortezahbh
پنج شنبه 29 مرداد 1394, 11:54 صبح
سلام
من میخوام با استفاده از این کامپوننت ماه رو بصورت 4 هفته داشته باشم
من برای کاربر 2 تا کمبو باکس گذاشتم که مثلا کاربر ماه "تیر" رو انتخاب میکنه و بعد هم هفته سوم رو انخاب میکنه من میخوام توی این بازه در جدول عملیات جستجو رو انجام بدم
حالا بفرمایید که چطوری فاصله زمانی این هفته رو پیدا کنم

این هم یک مثال برای درک بهتر:
کاربر ماه "مرداد"و هفته "چهارم" رو انتخاب میکنه
خروجی بازه زمانی مد نظر : 1394/05/24 تا 1394/05/30
من این خروجی رو میخوام داشته باشم
ممنون میشم راهنمایی کنید

m-khorsandi
جمعه 30 مرداد 1394, 23:33 عصر
شما دو تا کامبوباکس دارید که ماه و هفته رو در اختیار کاربر قرار میده و بعد از انتخاب ماه و هفته، کامپوننت تقویم چه کاری باید انجام بده!!؟

mortezahbh
شنبه 31 مرداد 1394, 10:18 صبح
شما دو تا کامبوباکس دارید که ماه و هفته رو در اختیار کاربر قرار میده و بعد از انتخاب ماه و هفته، کامپوننت تقویم چه کاری باید انجام بده!!؟

باید با استفاده از این دوتا کامبوباکس به من بگه که این هفته انتخاب شده از ماه انتخابی از چه تاریخی شروع میشود

m-khorsandi
شنبه 31 مرداد 1394, 15:42 عصر
این جزء وظایف این کامپوننت نیست و شما برای این کار نیاز به این کامپوننت ندارید.
شما با توجه به اندیس (کامبوباکس) هفته میتونی تاریخ شروع رو به دست بیاری، چونکه هر هفته 7 روز است و فقط کافیست که اندیس هفته رو در 7 ضرب کنی(تا تاریخ شروع به دست بیاد و ماه و سال رو هم که داری!) و یک سری شرایط ویژه برای روزهای آخر ماه و ماه هایی که 31 و 29 روزه هستند در نظر بگیری.

mortezahbh
یک شنبه 01 شهریور 1394, 19:18 عصر
اگه میشد همچین کاری کرد مشکل من حل میشد


slrdtpckr.WeekOfTheYear:=5;

یعنی هفته ی سال رو به کامپوننت میدادم و date picker میرفت به اون تاریخ

نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟

hamid-nic
جمعه 15 آبان 1394, 09:32 صبح
سلام آقای خرسندی عزیز
بابت کامپوننت بسیار مفید و با ارزشتون تشکر
آخرین ویرایش و تغییراتی که دادید و بصورت رسمی توی sourceforge.net منتشر کردید مربوط به 2014-06-26 است .
آیا قصد ندارید که کامپوننت را با آخرین تغییرات و قابل نصب تا آخرین ورژن دلفی (seattle 10) انجام بدید و انجا بروزش کنید ؟
بسیار سپاس و تشکر

m-khorsandi
جمعه 15 آبان 1394, 11:18 صبح
سلام آقای خرسندی عزیز
بابت کامپوننت بسیار مفید و با ارزشتون تشکر
آخرین ویرایش و تغییراتی که دادید و بصورت رسمی توی sourceforge.net منتشر کردید مربوط به 2014-06-26 است .
آیا قصد ندارید که کامپوننت را با آخرین تغییرات و قابل نصب تا آخرین ورژن دلفی (seattle 10) انجام بدید و انجا بروزش کنید ؟
بسیار سپاس و تشکر

سلام و ممنونم
تا چند روز آینده منتظر نسخه جدید باشید.
در ضمن لطفا اشکالات و مواردی که مورد نیاز است تا در نسخه بعد رفع شوند یا توسعه داده شوند رو همین جا (با شرح کامل) بنویسید.

**
اگر اینجا (http://sourceforge.net/projects/solarcalendar/) ای-میلتون رو ثبت کنید از آخرین آپدیت ها با خبر خواهید شد.
136517

hamid-nic
جمعه 15 آبان 1394, 16:08 عصر
سلام و ممنونم
تا چند روز آینده منتظر نسخه جدید باشید.
در ضمن لطفا اشکالات و مواردی که مورد نیاز است تا در نسخه بعد رفع شوند یا توسعه داده شوند رو همین جا (با شرح کامل) بنویسید.

خیلی خیلی خیلی ممنونم
اول از همه همون سازگاری با ورژن های بالاتر مثل XE7 و XE8 و Seattle 10
یه سری مواردی توی همین تاپیک بعضی از دوستان اشاره کردند که البته صحتش را بررسی بفرمایید مثل پست :
388 (http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=2209633&viewfull=1#post2209633) ، 389 (http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=2209969&viewfull=1#post2209969) ، 312 (http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=1613160&viewfull=1#post1613160) ، 313 (http://barnamenevis.org/showthread.php?110628-%D9%83%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%B4%D9%85%D8%B3%DB%8C&p=1616454&viewfull=1#post1616454)

و همه مواردی که خودتون صلاح می دونید
ان شااله که همیشه موفق باشید
منتظر ورژن جدید هستیم ...

m-khorsandi
شنبه 30 آبان 1394, 09:12 صبح
نسخه 3.4.12 منتشر شد.
تغییرات و ویژگی های این نسخه :

پشتیبانی از نسخه های XE3-XE10
دکمه های ماه قبل/بعد اضافه شده است.
امکان تغییر ماه با استفاده از کلیدهای کنترل + جهتی(چپ و راست)
امکان تغییر ماه با استفاده از کلیدهای Shift + جهتی(چپ و راست)
اصلاح تابع IncMonth و DecMonth
اصلاح تابع IncDay و DecDay
رفع اشکال تابع YMDScript
رفع اشکال تابع GetToDay
عدم وابستگی به نوع و شکل فرمت تاریخ در ویندوز
حذف دکمه های کنار Editbox سال


آخرین نسخه رو میتونید از اینجا دانلود (https://sourceforge.net/projects/solarcalendar/) کنید و اگر از ابزار مدیریت سورس SVN استفاه میکنید از این لینک آپدیت (svn://svn.code.sf.net/p/solarcalendar/code/trunk) کنید

nice boy
دوشنبه 30 آذر 1394, 08:13 صبح
تبریک میگم آقای خرسندی، مارکو کانتو توی وبلاگش کامپوننت شما رو معرفی کرده:تشویق:
http://blog.marcocantu.com/blog/delphi-blog-week-36.html
در قسمت Delphi Tools نوشته

behnam-k
دوشنبه 12 بهمن 1394, 15:57 عصر
با عرض سلام و خسته نباشید
متاسفانه من با نصب این کامپوننت مشکل دارم لطفا مراحل نصب رو بفرمایید . ممنون
درضمن من از ورژن XE3 استفاده میکنم

m-khorsandi
دوشنبه 12 بهمن 1394, 22:05 عصر
Open *.dpk file/Compile/Install

دکمه64
سه شنبه 20 بهمن 1394, 22:10 عصر
با سلام
دوستان گرامی من تو یک برنامه از این کامپوننت استفاده کردم
اما برنامه من برروی روی کامپیوتر های دیگه بازنمیشه و خطا میده
هنوز زیاد با بحث کامپوننت ها آشنا نیستم ، ولی اگه اشتباه نگم ، فکر میکنم چون از این کامپوننت استفاده کردم ، میبایست فایل dll یا ocx اون رو با دستور redsvr32 توی کامپیوتر مقصد نصب کنم ، اما دقیقاً نمیدونم چجوری و این فایل رو از کجا بیارم

خطایی تو کامپیوتر مقصد میده یه چیزی شبیه اینه که فایل rtl140.bpl و vcl140.bpl رو گم کرده و پیدا نمی کنه!!

لطفاً منو راهنمایی کنید،تشکر

m-khorsandi
چهارشنبه 21 بهمن 1394, 08:34 صبح
چون آشنا نیستید عرض میکنم که به صورت پیش فرض بعد از کامپایل پروژه تون این کامپوننت تبدیل به بخشی از فایل اجرایی میشه و نیازی به نصب یا رجیستر هیچ dll یا ocxیی نیست.

saeidd
پنج شنبه 22 بهمن 1394, 19:05 عصر
سلام جناب استاد خرسندی؛ یه سوال دارم:
در کامپوننت تقویم شمسی، امکان محدود کردن انتخاب تاریخ وجود داره؟ یعنی یه کاری کنیم که کاربر بتونه مثلا فقط روزهای سال 94 رو انتخاب کنه (بصورت یک بازه به کامپوننت بدیم)، یا اینکه یه روزهای خاصی رو (بصورت پراکنده) مشخص کنیم که کاربر فقط اونا رو بتونه انتخاب کنه و بقیه تاریخ ها بصورت غیر فعال دیده بشن.

m-khorsandi
پنج شنبه 22 بهمن 1394, 23:37 عصر
سلام جناب استاد خرسندی؛ یه سوال دارم:
در کامپوننت تقویم شمسی، امکان محدود کردن انتخاب تاریخ وجود داره؟ یعنی یه کاری کنیم که کاربر بتونه مثلا فقط روزهای سال 94 رو انتخاب کنه (بصورت یک بازه به کامپوننت بدیم)، یا اینکه یه روزهای خاصی رو (بصورت پراکنده) مشخص کنیم که کاربر فقط اونا رو بتونه انتخاب کنه و بقیه تاریخ ها بصورت غیر فعال دیده بشن.

نه متاسفانه ولی امکان پیاده سازیش وجود داره.
(تا جاییکه خاطرم هست فقط روی روزهای هفته امکان محدود سازی وجود داره)

fahimi
جمعه 23 بهمن 1394, 05:44 صبح
با سلام خدمت استادگرامی آقای خرسندی
معمولا در تیبل ها نوع فیلد تاریخ Date یا Datetime در نظر گرفته می شود. در حالیکه دركامپوننت تقويم شمسی شما به صورت شمسی به تیبل ارسال می شود اگر امکان آن هست تاریخ به صورت میلادی به تیبل ارسال گردد

saeidd
جمعه 23 بهمن 1394, 09:39 صبح
نه متاسفانه ولی امکان پیاده سازیش وجود داره.
(تا جاییکه خاطرم هست فقط روی روزهای هفته امکان محدود سازی وجود داره)
آره روی روزهای هفته این امکان هست.
پیاده سازیش می کنید عایا؟

m-khorsandi
شنبه 24 بهمن 1394, 02:57 صبح
با سلام خدمت استادگرامی آقای خرسندی
معمولا در تیبل ها نوع فیلد تاریخ Date یا Datetime در نظر گرفته می شود. در حالیکه دركامپوننت تقويم شمسی شما به صورت شمسی به تیبل ارسال می شود اگر امکان آن هست تاریخ به صورت میلادی به تیبل ارسال گردد

البته همیشه به این شکل نیست ولی تو نسخه ی بعدی هر دو تایپ پوشش داده می شوند.
ممنون

m-khorsandi
شنبه 24 بهمن 1394, 02:58 صبح
آره روی روزهای هفته این امکان هست.
پیاده سازیش می کنید عایا؟

حتما پیاده سازی میشه.
سپاس

سيد مجتبي هاشمي
سه شنبه 03 فروردین 1395, 17:52 عصر
با سلام و تبريك سال نو خدمت دوستان.
من بعد از سه سال دوباره اومدم سراغ برنامه نويسي، البته تقريبا همه چيز يادم رفته پس ببخشيد اگه سوالهاي ابتدايي ميپرسم/
من نسخه 3.4.12 روي دلفي 7 نصب كردم مشكلي هم نداشت. حالا چندتا سوال داشتم:

1. آيا اين نسخه روي دلفي 7 كار ميكنه يعني روي دلفي 7 زمان اجراي برنامه نوشته شده اجرا ميشه ؟
2. اگه در پروژه اي از نسخه 2.27.20 استفاده كرده باشم و الان نسخه 3.4.12 رو نصب كردم اون پروژه اجرا ميشه؟
3. چطور ميتونم نسخه 3.4.12 رو كه نصب كردم پاكش كنم از روي دلفي 7؟
4. وقتي داخل يك فرم از تقويم استفاده ميكنم و ميخوام تاريخ رو انتخاب كنم كه در باكس نوشته بشه خطاي زير رو نشون ميده. چيكار بايد بكنم؟

139682

ali_abbasi22145
پنج شنبه 26 فروردین 1395, 14:07 عصر
سلام
منم به جمع استفاده كنندگان كامپوننت آقاي خرسندي پيوستم.

1. تابع های تبدیل تاریخ میلادی به شمسی وب رعکس اضافه شود :
MiladyToShamsi('2009/02/02'
اینم از اینترنت گرفت و عالی هست لطفا اضافه کنید اقا خرسندی فقط یک کپی پست ساده هست!

Function TMainForm.MiladyToShamsi(DTime:tdateTime):tdateTim e;
var
YearEqual:array[0..2,0..2] of integer;
AddOneDay,AddFarDay:boolean;
AddTodays:byte;
Farday:byte;
ThisDay:word;
ThisMonth:word;
ThisYear:word;
YearDif1:Integer;
YearDif2:Integer;
TestRange1,testRange2,
FarsiRange1,FarsiRange2,P:Integer;
CurM,CurD:string;
sYear,sMonth,sDay:Variant;
Counter:Integer;
CurDay,CurMonth,CurYear:word;
Begin
CurM:='';
CurD:='';
YearEqual[1,1]:=1997;
YearEqual[1,2]:=1998;
YearEqual[2,1]:=1376;
YearEqual[2,2]:=1377;
DecodeDate(DTime,thisyear,thismonth,thisday);
YearDif1:=ThisYear-1997;
YearDif2:=ThisYear-1998;
Testrange1:=1996-(100*4);
Testrange2:=1996+(100*4);
FarsiRange1:=1375-(100*4);
FarsiRange2:=1375+(100*4);
AddOneDay:=false;
//Rem------------------------------
Counter:=TestRange1;
while TestRange2>=Counter do begin /////////////////////////
If thisYear=counter then begin
AddOneDay:=true;
break;
end;
If counter=TestRange2 then break;
counter:=counter+4
end;//while

If AddOneDay then
addtodays:=1
Else
AddTodays:=0;
//Rem---------------------------------/////////////////
If (((ThisMonth = 3) and (thisday<(20+AddtoDays)))
or ( ThisMonth<3)) then
YearDif1:=yearDif1-1;
//Rem------------
If (((thisYear mod 2)<>0) and
(((thismonth=3) and (thisday>(20-addTodays)))
or (thisMonth>4))) then
CurYear:=yearEqual[2,1]+YearDif1
else begin
CurYear:=YearEqual[2,1]+YearDif2;
Counter:=FarsiRange1;
while counter>FarsiRange2 do begin /////////////////////////
If CurYear=Counter then begin
AddFarDay:=true;
break;
end;
end;//while

If AddFarDay then
FarDay:=1 else Farday:=0;

If (((thismonth=3) and (thisday>20-(addToDays)+FarDay)) or (thismonth>3) ) then
CurYear:=CurYear+1;
end; //First If

If AddtoDays=1 then FarDay:=0;
//Rem---------------------------------
Case thismonth of
1:Begin
If thisday<(21-Farday) then begin
CurMonth:=10;
CurDay:=(ThisDay+10)+FarDay;
end else begin
CurMonth:=11;
CurDay:=(ThisDay-20)+FarDay;
end;
end;

2:Begin
If thisday<(20-Farday) then begin
CurMonth:=11;
CurDay:=(ThisDay+11)+FarDay;
end else begin
CurMonth:=12;
CurDay:=(ThisDay-19)+FarDay;
end;
End;

3:Begin
If thisday<(21-AddToDays) then begin
CurMonth:=12;
CurDay:=(ThisDay+9)+AddToDays+FarDay;
end else begin
CurMonth:=1;
CurDay:=(ThisDay-20)+AddToDays;
end;
End;

4:Begin
If thisday<(21-AddToDays) then begin
CurMonth:=1;
CurDay:=(ThisDay+11)+AddToDays;
end else begin
CurMonth:=2;
CurDay:=(ThisDay-20)+AddToDays;
end;
End;

5:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=2;
CurDay:=(ThisDay+10)+AddToDays;
end else begin
CurMonth:=3;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

6:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=3;
CurDay:=(ThisDay+10)+AddToDays;
end else begin
CurMonth:=4;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

7:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=4;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=5;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

8:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=5;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=6;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

9:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=6;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=7;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

10:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=7;
CurDay:=(ThisDay+8)+AddToDays;
end else begin
CurMonth:=8;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

11:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=8;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=9;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

12:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=9;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=10;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

end;//case
//Rem-----------------
CurM:=Trim(IntTostr(CurMonth));
CurD:=Trim(IntTostr(CurDay));
//Rem-----------------
If CurMonth<10 then
CurM:='0'+Trim(IntToStr(CurMonth));
If CurDay<10 then
CurD:='0'+Trim(IntTostr(CurDay));

Result:=EncodeDate(CurYear,CurMonth,CurDay);

end;

ali_abbasi22145
پنج شنبه 26 فروردین 1395, 14:08 عصر
پیشنهاد دوم:
2. اما مشكلي كه دارم اينه وقتي به يك فيلد database مثلا تاريخ تولد وصل مي كنم، مي خواهم وقتي تاريخ تولد براي شخصي ذخيره نكردم، اون هيچ تاريخي پيش فرض نشان ندهد (خالي باشد).
دوستان يا خود اقاي خورسندي عزيز اين مشكلم را حل كنند لطفا.

m-khorsandi
پنج شنبه 26 فروردین 1395, 17:20 عصر
پیشنهاد دوم:
2. اما مشكلي كه دارم اينه وقتي به يك فيلد database مثلا تاريخ تولد وصل مي كنم، مي خواهم وقتي تاريخ تولد براي شخصي ذخيره نكردم، اون هيچ تاريخي پيش فرض نشان ندهد (خالي باشد).
دوستان يا خود اقاي خورسندي عزيز اين مشكلم را حل كنند لطفا.

بله، این مشکل حل میشه.

ali_abbasi22145
جمعه 27 فروردین 1395, 01:37 صبح
سلام وتشکر

1. تابع تبدیل تاریخ میلادی به شمسی اضافه کنید و خیلی کاربردی هست و تست کردم و کاملا درسته که در اینجا گذاشتم:

اینم از اینترنت گرفتم و عالی هست لطفا اضافه کنید اقا خرسندی فقط یک کپی پست ساده هست!

Function TMainForm.MiladyToShamsi(DTime:tdateTime):tdateTim e;
var
YearEqual:array[0..2,0..2] of integer;
AddOneDay,AddFarDay:boolean;
AddTodays:byte;
Farday:byte;
ThisDay:word;
ThisMonth:word;
ThisYear:word;
YearDif1:Integer;
YearDif2:Integer;
TestRange1,testRange2,
FarsiRange1,FarsiRange2,P:Integer;
CurM,CurD:string;
sYear,sMonth,sDay:Variant;
Counter:Integer;
CurDay,CurMonth,CurYear:word;
Begin
CurM:='';
CurD:='';
YearEqual[1,1]:=1997;
YearEqual[1,2]:=1998;
YearEqual[2,1]:=1376;
YearEqual[2,2]:=1377;
DecodeDate(DTime,thisyear,thismonth,thisday);
YearDif1:=ThisYear-1997;
YearDif2:=ThisYear-1998;
Testrange1:=1996-(100*4);
Testrange2:=1996+(100*4);
FarsiRange1:=1375-(100*4);
FarsiRange2:=1375+(100*4);
AddOneDay:=false;
//Rem------------------------------
Counter:=TestRange1;
while TestRange2>=Counter do begin /////////////////////////
If thisYear=counter then begin
AddOneDay:=true;
break;
end;
If counter=TestRange2 then break;
counter:=counter+4
end;//while

If AddOneDay then
addtodays:=1
Else
AddTodays:=0;
//Rem---------------------------------/////////////////
If (((ThisMonth = 3) and (thisday<(20+AddtoDays)))
or ( ThisMonth<3)) then
YearDif1:=yearDif1-1;
//Rem------------
If (((thisYear mod 2)<>0) and
(((thismonth=3) and (thisday>(20-addTodays)))
or (thisMonth>4))) then
CurYear:=yearEqual[2,1]+YearDif1
else begin
CurYear:=YearEqual[2,1]+YearDif2;
Counter:=FarsiRange1;
while counter>FarsiRange2 do begin /////////////////////////
If CurYear=Counter then begin
AddFarDay:=true;
break;
end;
end;//while

If AddFarDay then
FarDay:=1 else Farday:=0;

If (((thismonth=3) and (thisday>20-(addToDays)+FarDay)) or (thismonth>3) ) then
CurYear:=CurYear+1;
end; //First If

If AddtoDays=1 then FarDay:=0;
//Rem---------------------------------
Case thismonth of
1:Begin
If thisday<(21-Farday) then begin
CurMonth:=10;
CurDay:=(ThisDay+10)+FarDay;
end else begin
CurMonth:=11;
CurDay:=(ThisDay-20)+FarDay;
end;
end;

2:Begin
If thisday<(20-Farday) then begin
CurMonth:=11;
CurDay:=(ThisDay+11)+FarDay;
end else begin
CurMonth:=12;
CurDay:=(ThisDay-19)+FarDay;
end;
End;

3:Begin
If thisday<(21-AddToDays) then begin
CurMonth:=12;
CurDay:=(ThisDay+9)+AddToDays+FarDay;
end else begin
CurMonth:=1;
CurDay:=(ThisDay-20)+AddToDays;
end;
End;

4:Begin
If thisday<(21-AddToDays) then begin
CurMonth:=1;
CurDay:=(ThisDay+11)+AddToDays;
end else begin
CurMonth:=2;
CurDay:=(ThisDay-20)+AddToDays;
end;
End;

5:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=2;
CurDay:=(ThisDay+10)+AddToDays;
end else begin
CurMonth:=3;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

6:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=3;
CurDay:=(ThisDay+10)+AddToDays;
end else begin
CurMonth:=4;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

7:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=4;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=5;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

8:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=5;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=6;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

9:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=6;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=7;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

10:Begin
If thisday<(23-AddToDays) then begin
CurMonth:=7;
CurDay:=(ThisDay+8)+AddToDays;
end else begin
CurMonth:=8;
CurDay:=(ThisDay-22)+AddToDays;
end;
End;

11:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=8;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=9;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

12:Begin
If thisday<(22-AddToDays) then begin
CurMonth:=9;
CurDay:=(ThisDay+9)+AddToDays;
end else begin
CurMonth:=10;
CurDay:=(ThisDay-21)+AddToDays;
end;
End;

end;//case
//Rem-----------------
CurM:=Trim(IntTostr(CurMonth));
CurD:=Trim(IntTostr(CurDay));
//Rem-----------------
If CurMonth<10 then
CurM:='0'+Trim(IntToStr(CurMonth));
If CurDay<10 then
CurD:='0'+Trim(IntTostr(CurDay));

Result:=EncodeDate(CurYear,CurMonth,CurDay);

end;

behnam-k
یک شنبه 19 اردیبهشت 1395, 00:25 صبح
سلام جناب استاد خرسندی

من Solar_Calendar_Package_v3.4.12 رو روی xe3 نصب میکنم ولی وقتی توی فرم قرارش میدم این ارور رو میده . و در قسمت uses از SolarCalendarPackage ایراد میگیره .ممنون میشم راهنمایی کنید .

140277140278

m-khorsandi
یک شنبه 19 اردیبهشت 1395, 08:05 صبح
سلام جناب استاد خرسندی

من Solar_Calendar_Package_v3.4.12 رو روی xe3 نصب میکنم ولی وقتی توی فرم قرارش میدم این ارور رو میده . و در قسمت uses از SolarCalendarPackage ایراد میگیره .ممنون میشم راهنمایی کنید .

140277140278



مسیر کامپوننت رو به مسیرهای دلفی اضافه کنید.

behnam-k
یک شنبه 19 اردیبهشت 1395, 17:05 عصر
سلام جناب مهندس
من از قسمت tools>options>library آیتم library path مسیر کامپوننت رو اضافه میکنم . ولی مشکل حل نمیشه .
140291

behnam-k
پنج شنبه 23 اردیبهشت 1395, 09:38 صبح
سلام دوستان

ممنون میشم بابت اضافه کردن کامپوننت به مسیر دلفی منو راهنمایی کنید .

behnam-k
جمعه 24 اردیبهشت 1395, 01:47 صبح
سلام جناب مهندس
من از قسمت tools>options>library آیتم library path مسیر کامپوننت رو اضافه میکنم . ولی مشکل حل نمیشه .
140291
سلام
ای کاش جناب مهندس خرسندی عزیز یا یکی از اساتید پرونده سوال من رو ببنده .
ممنون

behnam-k
شنبه 25 اردیبهشت 1395, 00:00 صبح
جناب مهندس سلام

من دوباره کامپوننت جنابعالی رو remove کردم و هنگام نصب مجدد متوجه شدم که این یبغام رو میده
[MSBuild Error] The "CreateRcFile" task failed unexpectedly.
System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Embarcadero\RAD Studio\Solar_Calendar_Package_v3.4.12\SolarCalenda rPack.vrc' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter.CreateFile(String path, Boolean append)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append)
at Borland.Build.Tasks.Shared.CreateRcFile.WriteWindo wsRC()
at Borland.Build.Tasks.Shared.CreateRcFile.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInst antiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
140400

m-khorsandi
شنبه 25 اردیبهشت 1395, 08:10 صبح
سلام دوستان

ممنون میشم بابت اضافه کردن کامپوننت به مسیر دلفی منو راهنمایی کنید .

وارد این بخش بشید : Tools->Options->Delphi Options->Library->Library Path
مسیرتون رو انتخاب کنید و Ok کنید.

مشکل کامپایل برنامه تون باید خیلی ساده حل بشه و اصلا مسئله ی پیچیده ای نیست.

behnam-k
یک شنبه 26 اردیبهشت 1395, 00:05 صبح
وارد این بخش بشید : Tools->Options->Delphi Options->Library->Library Path
مسیرتون رو انتخاب کنید و Ok کنید.

مشکل کامپایل برنامه تون باید خیلی ساده حل بشه و اصلا مسئله ی پیچیده ای نیست.

ممنون جناب مهندس - مشکل با نصب مجدد دلفی حل شد .

ali_abbasi22145
چهارشنبه 29 اردیبهشت 1395, 09:25 صبح
سلام
با ویندوز 10 وقتی برنامه من که از این کامپوننت استفاده اجرا می شود، این خطا را می دهد

m-khorsandi
چهارشنبه 06 مرداد 1395, 21:44 عصر
پیشنهاد دوم:
2. اما مشكلي كه دارم اينه وقتي به يك فيلد database مثلا تاريخ تولد وصل مي كنم، مي خواهم وقتي تاريخ تولد براي شخصي ذخيره نكردم، اون هيچ تاريخي پيش فرض نشان ندهد (خالي باشد).
دوستان يا خود اقاي خورسندي عزيز اين مشكلم را حل كنند لطفا.

این مشکل رفع شد.

amirkazem
جمعه 22 مرداد 1395, 02:18 صبح
باسلام خدمت اساتید،
دریک برنامه ازتاریخ شمسی(solar calander)(نوشته شده توسط آقای خرسندی) استفاده می کنیم. نوع دیتا برای فیلدتاریخ درجداول مختلف برنامه هم ازنوع(text)درنظرگرفته ایم.
دریکی ازقسمتهای برنامه می خواهیم یک تاریخ(DBEdit1)را از تاریخ دیگر(DBEdit2) کم کنیم.(یعنی اختلاف روزهای بین دوتاریخ رابدست بیاوریم). تاریخ هم به این صورت هستش: 1395/05/22
دوستان محبت بفرمایید که چگونه می تونیم این مقایسه رو انجام بدیم.
ممنون!

m-khorsandi
شنبه 23 مرداد 1395, 08:09 صبح
باسلام خدمت اساتید،
دریک برنامه ازتاریخ شمسی(solar calander)(نوشته شده توسط آقای خرسندی) استفاده می کنیم. نوع دیتا برای فیلدتاریخ درجداول مختلف برنامه هم ازنوع(text)درنظرگرفته ایم.
دریکی ازقسمتهای برنامه می خواهیم یک تاریخ(DBEdit1)را از تاریخ دیگر(DBEdit2) کم کنیم.(یعنی اختلاف روزهای بین دوتاریخ رابدست بیاوریم). تاریخ هم به این صورت هستش: 1395/05/22
دوستان محبت بفرمایید که چگونه می تونیم این مقایسه رو انجام بدیم.
ممنون!

از کدوم نسخه استفاده می کنید؟

amirkazem
شنبه 23 مرداد 1395, 12:27 عصر
سلام، ازنسخه
Solar Calander For DelphiXE3 استفاده می کنم. که دریک پکیجی بود. فکرمیکنم نسخه اولیه باشه. مطمئنم که آخری نیست.

m-khorsandi
شنبه 23 مرداد 1395, 12:58 عصر
احتمالا این نسخه رو از منبع اصلی (sourceforge.net/projects/solarcalendar/) دانلود نکردی.
آخرین نسخه رو از اینجا (sourceforge.net/projects/solarcalendar)بگیر و تابع DaysBetween رو چک کن.

ali_abbasi22145
چهارشنبه 17 شهریور 1395, 09:59 صبح
از کدوم نسخه استفاده می کنید؟

Solar_Calendar_Package_v3.4.12 این نسخه مشکل دارد.
اون مشکل که تو شکل کماکان هست! وقتی یک رکورد خالی و جدید اضافه می کنم مثلا تاریخ تولد و تاریخ اخذ مدرک و تاریخ تحویل از رکورد اخری دارد

saeidd
جمعه 19 آذر 1395, 22:25 عصر
سلام خدمت جناب خرسندی عزیز.

امروز به یه مشکلی برخوردم در کامپوننت TSolarDatePicker؛ نسخه 3.4.12؛ وقتی که در صفحه تقویم باز شده می خوام سال رو بصورت دستی تایپ کنم رقم اول تایپ میشه و دیگه چیزی تایپ نمی کنه. مثل اینکه با تایپ اولین رقم نشانگر متن از باکس مربوطه میره بیرون و باید با کلیک ماوس دوباره نشانگر رو بیاریم اونجا و یه رقم دیگه تایپ کنیم و ... . عکس ضمیمه رو ببینید.

مشخصات : دلفی 2010، ویندوز 10، فونت فرمها و اشیاء فونت فارسی Iran-Sans

ممنونم اگه راهنمایی کنید.

m-khorsandi
چهارشنبه 01 دی 1395, 09:01 صبح
سلام خدمت جناب خرسندی عزیز.

امروز به یه مشکلی برخوردم در کامپوننت TSolarDatePicker؛ نسخه 3.4.12؛ وقتی که در صفحه تقویم باز شده می خوام سال رو بصورت دستی تایپ کنم رقم اول تایپ میشه و دیگه چیزی تایپ نمی کنه. مثل اینکه با تایپ اولین رقم نشانگر متن از باکس مربوطه میره بیرون و باید با کلیک ماوس دوباره نشانگر رو بیاریم اونجا و یه رقم دیگه تایپ کنیم و ... . عکس ضمیمه رو ببینید.

مشخصات : دلفی 2010، ویندوز 10، فونت فرمها و اشیاء فونت فارسی Iran-Sans

ممنونم اگه راهنمایی کنید.

سلام،
لطفا با آخرین نسخه بررسی کنید و نتیجه رو به من خبر بدید
آخرین نسخه رو میتونید با svn بگیرید یا مستقیما snapshot (https://sourceforge.net/p/solarcalendar/code/HEAD/tree/)بگیرید

saeidd
جمعه 03 دی 1395, 10:40 صبح
سلام،
لطفا با آخرین نسخه بررسی کنید و نتیجه رو به من خبر بدید
آخرین نسخه رو میتونید با svn بگیرید یا مستقیما snapshot (https://sourceforge.net/p/solarcalendar/code/HEAD/tree/)بگیرید

تستش کردم، مشکل همچنان برقراره.

راستی یه نکته دیگه، اگه امکانش بود قابلیت تغییر فونت و همچنین تغییر سایز SolarMOnthCalendar رو بهش اضافه کن مهندس. خیلی عالی میشه.

m-khorsandi
دوشنبه 06 دی 1395, 14:44 عصر
تستش کردم، مشکل همچنان برقراره.

راستی یه نکته دیگه، اگه امکانش بود قابلیت تغییر فونت و همچنین تغییر سایز SolarMOnthCalendar رو بهش اضافه کن مهندس. خیلی عالی میشه.

آخرین نسخه رو امروز ریلیز کردم
لطفا دانلود کنید (http://sourceforge.net/projects/solarcalendar/) و اگه مشکلی بود اطلاع بدید.

saeidd
دوشنبه 06 دی 1395, 21:20 عصر
آخرین نسخه رو امروز ریلیز کردم
لطفا دانلود کنید (http://sourceforge.net/projects/solarcalendar/) و اگه مشکلی بود اطلاع بدید.

مشکل تایپ دستی عدد سال حل شده مهندس، ممنون.


اگه قابلیت تغییر فونت و همچنین تغییر سایز SolarMonthCalendar رو اضافه کنی خیلی بهتر میشه مهندس. منتظریم

saeed842
چهارشنبه 22 دی 1395, 06:14 صبح
با سلام وتشکر از زحمات آقای خرسندی
من دو تا مشکل دارم
اول من ورژن 3.4.27 رو امتحان کردم یه مشکلی داره وقتی در تقویم نمایشی روی کلید تغییر حالت (شمسی به میلادی)تقویم کلیک میکنی اول تغییر میلادی درست انجام میشه ولی در کلیک مجدد برای برگشت به شمسی به مشکل بر میخورم
اما در ورژن 3.4.12 این مشکل نیست
باتشکر

saeed842
چهارشنبه 22 دی 1395, 06:21 صبح
مشکل دوم عدم وجود خاصیت Anchors در TSolarMonthCalendar
باتشکر

m.sabeghi
چهارشنبه 27 بهمن 1395, 21:08 عصر
جناب آقای مهندس خرسندی عزیز
با سلام و احترام
ضمن تشکر از کامپوننت تقویم شمسی
من از کامپوننت شما استفاده کردم بسیار عالی بود فقط یک خواهش امکان داره روش تغییر سایز تقویم که در TSolarDatePicker باز میشه رو به من بگین
میخوام بتونم سایزش رو عوض کنم

با تشکر

music87025
دوشنبه 23 اسفند 1395, 12:54 عصر
علی جان هنوز روی دلفی 2009 كاری نكردم ولی با دلفی 2007 مشكل خاصی نداره و فقط چند تا مشكل جزئی هست كه بايد حل بشن.
راهنما رو ديدی؟



آموزش ویولن (http://www.violin6.ir/)/آموزش گیتار کلاسیک (http://guitarclassical.royablog.ir/)/آموزش دف (http://def.royablog.ir/) /آموزش سنتور (http://santoor.royablog.ir/) /آموزش گیتار پاپ (http://guitarpop.royablog.ir/)/آموزش ارگ (http://keyboards.royablog.ir/)

Valadi
جمعه 27 اسفند 1395, 21:07 عصر
با سلام
1 - امكان تغيير فرمت روز و ماه در تقويم ميلادي اضافه بشه مثلا 18/03/2017 و 03/18/2017
2 - امكان دو رقمي شدن اعداد زير 10 ---> 01 = 1

saied_cp
سه شنبه 12 اردیبهشت 1396, 23:51 عصر
با سلام خدمت آقای خرسندی عزیز. من از کامپوننت شما سالهاست که استفاده می کنم و متشکرم از اهمیتی که به این موضوع میدید. متاسفانه چند خطا هنگام استفاده از این کامپوننت برای بنده به وجود امده که در زیر به انها اشاره می کنم.

بنده از دلفی هفت و کامپوننت نسخه 2.27.20 استفاده می کنم .

اول اینکه مشکل بنده با vclskins بود که بطور کامل حذف کردم و از کامپوننت دیگه ای استفاده می کنم
دوم اینکه onchane برای بنده مشکل ساز شده و راه حل دیگه ای به ذهنم نرسید
تصویر خطا و کد داخل بخش onchange به صورت زیر هست
145135
145136
145137

سوم اینکه نسخه کامپوننت رو به روز کردم و در فرم هایی که قبلا از picker ها استفاده کردم همچین خطایی رو میبینم
145138

بعد از زدن دکمه ignore وارد برنامه میشم و اما بعد از کامپایل وارد فرمی که picker ها داخل اون هست میشم با همچین پیغامی روبه رو میشم.
145139
145140

ممنون میشم بنده را راهنمایی بفرمایید.

m-khorsandi
چهارشنبه 13 اردیبهشت 1396, 09:55 صبح
سلام خدمت جناب خرسندی عزیز.

امروز به یه مشکلی برخوردم در کامپوننت TSolarDatePicker؛ نسخه 3.4.12؛ وقتی که در صفحه تقویم باز شده می خوام سال رو بصورت دستی تایپ کنم رقم اول تایپ میشه و دیگه چیزی تایپ نمی کنه. مثل اینکه با تایپ اولین رقم نشانگر متن از باکس مربوطه میره بیرون و باید با کلیک ماوس دوباره نشانگر رو بیاریم اونجا و یه رقم دیگه تایپ کنیم و ... . عکس ضمیمه رو ببینید.

مشخصات : دلفی 2010، ویندوز 10، فونت فرمها و اشیاء فونت فارسی Iran-Sans

ممنونم اگه راهنمایی کنید.

عرض سلام،
لطفا با آخرین نسخه بررسی کنید. نسخه‌ای که شما استفاده می‌کنید تقریبا برای 2 سال پیش هست. آخرین نسخه رو 4 ماه پیش ریلیز کردم.
از لینک زیر میتونید گزینه Download Snapshot رو بزنید :
SolarCalendar Code Repo (https://sourceforge.net/p/solarcalendar/code/HEAD/tree/)

mojtaba0912433
جمعه 26 آبان 1396, 21:26 عصر
سلام و خسته نباشید
این کامپوننت امکان برگردوندن تاریخ روز قبل یا بعد از تاریخ انتخابی راداره ؟ اگر داره لطفا کدش را بدید

m-khorsandi
شنبه 27 آبان 1396, 09:03 صبح
سلام و خسته نباشید
این کامپوننت امکان برگردوندن تاریخ روز قبل یا بعد از تاریخ انتخابی راداره ؟ اگر داره لطفا کدش را بدید

سلام،
بله، توابع IncDay, IncMonth, IncYear, DecDay, DecMonth, DecYear برای تغییر تاریخ به بعد یا قبل با تغییر در شکل ظاهری استفاده می‌شوند.
توابع LIncDay, LIncMonth, LIncYear, LDecDay, LDecMonth, LDecYear برای تغییر تاریخ به بعد یا قبل بدون تغییر در شکل ظاهری استفاده می‌شوند و فقط نتیجه رو به صورت رشته براتون برمی‌گردونه.

fahimi
یک شنبه 28 آبان 1396, 09:13 صبح
البته همیشه به این شکل نیست ولی تو نسخه ی بعدی هر دو تایپ پوشش داده می شوند.
ممنون

سلام
با تشکر از زحمات شما در نسخه جدید امکان ذخیره بصورت میلادی در تیبل پوشش داده شده است.

mojtaba0912433
دوشنبه 29 آبان 1396, 12:05 عصر
سلام،
بله، توابع IncDay, IncMonth, IncYear, DecDay, DecMonth, DecYear برای تغییر تاریخ به بعد یا قبل با تغییر در شکل ظاهری استفاده می‌شوند.
توابع LIncDay, LIncMonth, LIncYear, LDecDay, LDecMonth, LDecYear برای تغییر تاریخ به بعد یا قبل بدون تغییر در شکل ظاهری استفاده می‌شوند و فقط نتیجه رو به صورت رشته براتون برمی‌گردونه.

ممنون از راهنمايي شما توابعي كه بدون تغيير شكل استفاده ميشن را من ندارم خطا ميگيره احتمالش هست در ورژن هاي جديد استفاده كرده باشين؟

m-khorsandi
دوشنبه 29 آبان 1396, 14:14 عصر
ممنون از راهنمايي شما توابعي كه بدون تغيير شكل استفاده ميشن را من ندارم خطا ميگيره احتمالش هست در ورژن هاي جديد استفاده كرده باشين؟

سه سالی هست که اضافه شده‌اند، آخرین نسخه رو بگیرید و چک کنید اگر مشکلی بود اطلاع بدید

fahimi
دوشنبه 29 آبان 1396, 20:09 عصر
سلام
منظورم این بود که به جدول متصل باشد و تاریخ میلادی جدول به شمسی نمایش دهد و هنگام ذخیره تاریخ شمسی را از کابر گرفته و میلادی در جدول ذخیره نماید.
با تشکر

mojtaba0912433
سه شنبه 21 آذر 1396, 17:26 عصر
سه سالی هست که اضافه شده‌اند، آخرین نسخه رو بگیرید و چک کنید اگر مشکلی بود اطلاع بدید

سلا و خسته نباشيد آخرين نسخه را دانلود كردن ارور (solardatepicker1.colorcaptionstart) ميده

m-khorsandi
چهارشنبه 22 آذر 1396, 17:21 عصر
سلا و خسته نباشيد آخرين نسخه را دانلود كردن ارور (solardatepicker1.colorcaptionstart) ميده

متن خطا یا تصویر خطا؟

galia_behbahan
پنج شنبه 05 بهمن 1396, 18:05 عصر
درود بر جناب خرسندی عزیز
بچه ها کسی میدونه تا چه نسخه ای از این کامپوننت روی دلفی 7 جواب میده ؟

m-khorsandi
شنبه 07 بهمن 1396, 13:53 عصر
درود بر جناب خرسندی عزیز
بچه ها کسی میدونه تا چه نسخه ای از این کامپوننت روی دلفی 7 جواب میده ؟

تا آخرین نسخه روی Delphi 7 نصب میشه.

amirkazem
دوشنبه 09 بهمن 1396, 10:11 صبح
باسلام وعرض وقت بخیر!
جناب خرسندی!
یک مورد کد که درکامپوننت تقویم شمسی اختلاف بین 2تاریخ رو نشون میدخ محبت می کنید بذارید؟
برای محاسبه روزهای بین 2 تاریخ دریک برنامه نیازدارم.
ممنون.

m-khorsandi
دوشنبه 09 بهمن 1396, 15:23 عصر
باسلام وعرض وقت بخیر!
جناب خرسندی!
یک مورد کد که درکامپوننت تقویم شمسی اختلاف بین 2تاریخ رو نشون میدخ محبت می کنید بذارید؟
برای محاسبه روزهای بین 2 تاریخ دریک برنامه نیازدارم.
ممنون.

قبلا اضافه شده!
تابع DaysBetween

راهنمای همراه کامپوننت را مطالعه کنید.

mohammad6017
شنبه 14 بهمن 1396, 22:27 عصر
سلام خدمت جناب خرسندی
من میخواستم از قابلیت ذخیره تاریخ در دیتابیس استفاده کنم . راهنما کامپوننت روخوندم درباره نوع فیلد در دیتابیس توضیحی نداره . من از sql استفاده می کنم و فیلدهای تاریخم nvarchar(10) هست ظاهرا با کامپوننت شما مشکلی نداره فقط میخوام امکان تایپ تاریخ رو بردارم و فقط از طریق تقویم قابل انتخاب باشه و دوم اینکه نمیخوام کاربر تقویم رو میلادی کنه چون سیستم ارور میده و میگه تاریخ وارد شده معتبر نیست .
ممنون میشم در این خصوص و کار با دیتابیس توضیح بدین
ممنون

m-khorsandi
چهارشنبه 25 بهمن 1396, 18:34 عصر
سلام خدمت جناب خرسندی
من میخواستم از قابلیت ذخیره تاریخ در دیتابیس استفاده کنم . راهنما کامپوننت روخوندم درباره نوع فیلد در دیتابیس توضیحی نداره . من از sql استفاده می کنم و فیلدهای تاریخم nvarchar(10) هست ظاهرا با کامپوننت شما مشکلی نداره فقط میخوام امکان تایپ تاریخ رو بردارم و فقط از طریق تقویم قابل انتخاب باشه و دوم اینکه نمیخوام کاربر تقویم رو میلادی کنه چون سیستم ارور میده و میگه تاریخ وارد شده معتبر نیست .
ممنون میشم در این خصوص و کار با دیتابیس توضیح بدین
ممنون

با پراپرتی VisibleLayoutSwitch میتویند دکمه تغییر از شمسی به میلادی رو غیر فعال کنید.
برای انتخاب از طریق تقویم هم پراپرتی readonly رو true کنید.

این دو مورد رو چک کنید، اگر مشکلی بود همین‌جا یا از طریق ای-میل اعلام کنید.

mohammad6017
شنبه 28 بهمن 1396, 21:22 عصر
ممنون از جوابتون
اولی اوکی شد ولی Readonly کردن کلا تقویم و غیرفعال میکنه .
این مشکلی نیست مشکل اصلی اینه که درباره کار با دیتابیس توضیحی ندادید . مشکلی ایجاد نمیشه؟ نوع فیلد تاریخ چی باید باشه؟

m-khorsandi
یک شنبه 29 بهمن 1396, 08:21 صبح
ممنون از جوابتون
اولی اوکی شد ولی Readonly کردن کلا تقویم و غیرفعال میکنه .
این مشکلی نیست مشکل اصلی اینه که درباره کار با دیتابیس توضیحی ندادید . مشکلی ایجاد نمیشه؟ نوع فیلد تاریخ چی باید باشه؟

مشکل ReadOnly رو حل کردم و نسخه جدید رو ریلیز میکنم.
در مورد فیلد تاریخ با شرایطِ شما، پراپرتی DataFieldType باید با dftSolar برابر باشد.

Delphi Coder
دوشنبه 09 فروردین 1400, 11:17 صبح
سلام
اقای خرسندی ممنون به خاطر اشتراک این کار. این کامپوننت رو من نصب کردم به نظر کامپوننت خیلی خوبی میاد. یه ایراد یا بهتر بگم باگی که تو ذوق میزنه اینه که یک بار که میزنی تاریخ رو میلادی نشون میده اگه بخوای دوباره برگردی به شمسی exception میده که "تاریخ وارد شده صحیح نمیباشد....." و متعاقبا "List Index Out Of Bound: -1"

m-khorsandi
دوشنبه 09 فروردین 1400, 12:15 عصر
سلام
اقای خرسندی ممنون به خاطر اشتراک این کار. این کامپوننت رو من نصب کردم به نظر کامپوننت خیلی خوبی میاد. یه ایراد یا بهتر بگم باگی که تو ذوق میزنه اینه که یک بار که میزنی تاریخ رو میلادی نشون میده اگه بخوای دوباره برگردی به شمسی exception میده که "تاریخ وارد شده صحیح نمیباشد....." و متعاقبا "List Index Out Of Bound: -1"
آخرین نسخه رو نصب کردید؟
لطفا یک عکس از Windows regional options برای من بفرستید

Delphi Coder
دوشنبه 09 فروردین 1400, 13:16 عصر
آخرین نسخه رو نصب کردید؟
لطفا یک عکس از Windows regional options برای من بفرستید
سلام. بله از github برداشتم. بالای solarcalendarpackage.pas اینو میبینم:
{************************************************* ********}
{* Solar Calendar Package v3.5.1 *}
{************************************************* ********}
اینو مینویسم شاید بتونه کمک کنه من خودم چون به سورس تسلط ندارم یکم گیج شدم که این PKind و اینا دقیقا چجوری set میشن ولی در کل چیزی که تا حالا فهمیدم اینه:
پارامترهایی که به TPublicUtils.SeparateYMD میان برعکس هستند وقتی رشته solar هست میلادی میاد پارامترش و برعکس. نهایتا این تابع یه جا همه چیو صفر برمیگردنه (وقتی از رابط کاربری میخوایم از میلادی مجدد به شمسی برگردیم) و کار خراب میشه.
153183

Delphi Coder
دوشنبه 09 فروردین 1400, 14:16 عصر
یه نکته کوچولوی دیگه: خط 3199 else و begin یه tab کم دارند ادم فکر میکنه به خاطر PKind اومد تو قسمت else در صورتی که اونها داخل همون شرط kind=1 هستند

m-khorsandi
دوشنبه 09 فروردین 1400, 14:31 عصر
ممنون از توضیحات‌تون
با تنظیمات RegOp شما چک کردم. خطایی ندیدم. هم کامپوننت TSolarDatePicker و هم TSolarMonthCalendar
لطفا بیشتر توضیح بدید یا اینکه یک فیلم چند ثانیه‌ای از کارهایی که انجام می‌دید و خطا می‌گیرید بفرستید.

Delphi Coder
دوشنبه 09 فروردین 1400, 17:59 عصر
ممنون از توضیحات‌تون
با تنظیمات RegOp شما چک کردم. خطایی ندیدم. هم کامپوننت TSolarDatePicker و هم TSolarMonthCalendar
لطفا بیشتر توضیح بدید یا اینکه یک فیلم چند ثانیه‌ای از کارهایی که انجام می‌دید و خطا می‌گیرید بفرستید.

من رفتم یک بار دیگه از sourceforge برداشتم یکمی حجمها فرق داشت ولی تغییری در نتیجه نبود. فایل ویدیو رو تو فروم نتونستم اپلود کنم. موقتا اینجا قرار دادم https://uupload.ir/view/sn5v_bandicam_2021-03-29_18-14-02-645.zip/

m-khorsandi
چهارشنبه 11 فروردین 1400, 22:13 عصر
من رفتم یک بار دیگه از sourceforge برداشتم یکمی حجمها فرق داشت ولی تغییری در نتیجه نبود. فایل ویدیو رو تو فروم نتونستم اپلود کنم. موقتا اینجا قرار دادم https://uupload.ir/view/sn5v_bandicam_2021-03-29_18-14-02-645.zip/
نسخه‌ی 3.6 کامپوننت رو روی github کامیت کردم : https://github.com/mohamadkh/SolarCalendar

مشکل "List Index Out Of Bound: -1" رفع شد.

لطفا بررسی کنید و اطلاع بدید.

Delphi Coder
پنج شنبه 12 فروردین 1400, 12:54 عصر
نسخه‌ی 3.6 کامپوننت رو روی github کامیت کردم : https://github.com/mohamadkh/SolarCalendar

مشکل "List Index Out Of Bound: -1" رفع شد.

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

kingepars
سه شنبه 09 فروردین 1401, 16:42 عصر
سلام
روی دلفی 11.1 خواستم نصب کنم ارور داد. مشکل از منه! یا هنوز برای دلفی 11 ریلیز نشده؟
با تشکر

m-khorsandi
پنج شنبه 11 فروردین 1401, 18:19 عصر
سلام
روی دلفی 11.1 خواستم نصب کنم ارور داد. مشکل از منه! یا هنوز برای دلفی 11 ریلیز نشده؟
با تشکر

وقت شما بخیر
روی Delphi 11.1 نصب کردم، مشکلی نداشت.
از خطا عکس آپلود کنید.

153744
آخرین نسخه رو هم از این اینجا (https://github.com/mohamadkh/SolarCalendar) می‌تونید دریافت کنید(ارتباطی به Delphi 11.1 ندارد)

homayounipour
چهارشنبه 08 تیر 1401, 18:25 عصر
سلام مهندس وقت به خیر
ضمن تشکر و تقدیر از زحمات شما بابت طراحی این کامپوننت خوب و کاربردی
من این کامپوننت رو در دلفی 11.1 نصب کردم و به خوبی کامپایل و اینستال شد ولی وقتی برنامه رو ران میکنم و میخوام از تقویم روزی رو انتخاب کنم بعد از کلیک روی datepicker تاریخ مورد نظر ارور زیر رو میده :
Project Project1.exe raised exception class ERangeError with message 'Range check error'.

و خطا رو در این خط نشون میده :
Result := CallWindowProc(FPopupForm.FOrgFormProc, Wnd, Msg, wParam, lParam);

و وقتی برنامه سمپل شما رو ران میکنم بدون ارور کار میکنه

Emdad2001
دوشنبه 27 تیر 1401, 15:48 عصر
سلام، من چند سالی از کامپوننت (i18n) استفاده می کنم حالا یک مشکلی داره که تاریخ شمسی به پایان رسیده :قهقهه: با نویسنده برنامه صحبت کردم میگه دیگه کار نمیکنه و باید یک تغییری تو برنامه بدم که درست بشه :متفکر: من اگه میتونیستم خودم درست میکردم متاسفانه هرچی فکردم به نتیجه نرسیدم




class function TJalaliCalendar.MinSupportedDateTime: TDateTime;begin
Result := Max({0955/01/01 Jalali} -118257, inherited);
end;

class function TJalaliCalendar.MaxSupportedDateTime: TDateTime;
begin
Result := Min({1403/12/29 Jalali} 45735.99999, inherited);
end;


تو ایمیل به کد بالا اشاره شده تا تاریخ شمسی اضافه بشه ولی نمیدونم چجوری :متفکر:

borland dariush
دوشنبه 12 دی 1401, 11:40 صبح
با سلام خدمت مهندس خرسندی
من کامپوننت رو روی دلفی بدون مشکل نصب کردم ولی هنگام استفاده از DatePicker و ران کردن برنامه ارور میده Rang Check Eroor
154411

borland dariush
سه شنبه 13 دی 1401, 08:27 صبح
سلام مهندس وقت به خیر
ضمن تشکر و تقدیر از زحمات شما بابت طراحی این کامپوننت خوب و کاربردی
من این کامپوننت رو در دلفی 11.1 نصب کردم و به خوبی کامپایل و اینستال شد ولی وقتی برنامه رو ران میکنم و میخوام از تقویم روزی رو انتخاب کنم بعد از کلیک روی datepicker تاریخ مورد نظر ارور زیر رو میده :
Project Project1.exe raised exception class ERangeError with message 'Range check error'.


و خطا رو در این خط نشون میده :
Result := CallWindowProc(FPopupForm.FOrgFormProc, Wnd, Msg, wParam, lParam);

و وقتی برنامه سمپل شما رو ران میکنم بدون ارور کار میکنه1

من هم دقیقا همین مشکل رو دارم

m-khorsandi
دوشنبه 19 دی 1401, 10:07 صبح
وقت شما بخیر
مشکل Range Check Error رفع شد، آخرین نسخه رو می‌تونید از آدرس زیر دریافت کنید :
SolarCalendar Components
(https://github.com/mohamadkh/SolarCalendar)

masoode
سه شنبه 27 دی 1401, 16:54 عصر
استاد از اینکه این کامپوننت را رایگان در اختیار ما قرار می دهید متشکرم.

پیشنهاد میکنم اگر خواستید در ادامه نسخه دیگری ارائه کنید این hint ها را هم بر طرف کنید:
[dcc32 Hint] SolarCalendarPackage.pas(2052): H2077 Value assigned to 'TPublicUtils.IntDayOfWeek' never used
[dcc32 Hint] SolarCalendarPackage.pas(2772): H2164 Variable 'date' is declared but never used in 'TCustomSolarCalendar.SetYear'
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(857): H2219 Private symbol 'DayValidityCheck' declared but never used

البته به راحتی با اضافه کردن 'System.Types' به یونیت SolarCalendarPackage.pas و با گذاشتن // قبل از خطوط بلا استفاده hint ها را برای خودم رفع کردم.
(هر چند ممکنه در ورژن ها مختلف دلفی این hint ها متفاوت باشه)

m-khorsandi
جمعه 30 دی 1401, 22:14 عصر
استاد از اینکه این کامپوننت را رایگان در اختیار ما قرار می دهید متشکرم.

پیشنهاد میکنم اگر خواستید در ادامه نسخه دیگری ارائه کنید این hint ها را هم بر طرف کنید:
[dcc32 Hint] SolarCalendarPackage.pas(2052): H2077 Value assigned to 'TPublicUtils.IntDayOfWeek' never used
[dcc32 Hint] SolarCalendarPackage.pas(2772): H2164 Variable 'date' is declared but never used in 'TCustomSolarCalendar.SetYear'
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6489): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6503): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6518): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(6545): H2443 Inline function 'Point' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] SolarCalendarPackage.pas(857): H2219 Private symbol 'DayValidityCheck' declared but never used

البته به راحتی با اضافه کردن 'System.Types' به یونیت SolarCalendarPackage.pas و با گذاشتن // قبل از خطوط بلا استفاده hint ها را برای خودم رفع کردم.
(هر چند ممکنه در ورژن ها مختلف دلفی این hint ها متفاوت باشه)

تا حدی حذف Hintها و Warningها امکان‌پذیر است.
در مورد System.Types به این دلیل که این namespace در دلفی 7 شناسایی نمی‌شود، قابل استفاده هم نیست.
مابقی Hintها رفع و کامیت شدند.

darrudi
شنبه 05 فروردین 1402, 13:07 عصر
با سلام و خسته نباشید ، تعطیلات رو هم میشه تو این تقویم گنجوند ؟

MortezaDelphi
شنبه 19 اسفند 1402, 09:44 صبح
با سلام
من چندین سال هست که دارم از کامپوننت solardate استفاده می کنم. الان به یه مشکلی برخوردم. سال 1403 سال کبیسه هست ولی تقویم solatdate سال 1404 را کبیسه حساب کرده.
جالب هست که روز 29 اسفند 1403 را انتخاب می کنم، چهارشنبه هست و یکم فروردین 1404 هم جمعه. ولی 30 اسفند 1403 را خطا میده و روی تقویم هم نمایش نمیده

m-khorsandi
دوشنبه 21 اسفند 1402, 17:33 عصر
با سلام
من چندین سال هست که دارم از کامپوننت solardate استفاده می کنم. الان به یه مشکلی برخوردم. سال 1403 سال کبیسه هست ولی تقویم solatdate سال 1404 را کبیسه حساب کرده.
جالب هست که روز 29 اسفند 1403 را انتخاب می کنم، چهارشنبه هست و یکم فروردین 1404 هم جمعه. ولی 30 اسفند 1403 را خطا میده و روی تقویم هم نمایش نمیده

سلام
مشکل رفع شد، آخرین نسخه رو می‌تونید از آدرس زیر بردارید :

https://github.com/mohamadkh/SolarCalendar
یا

https://github.com/mohamadkh/SolarCalendar/releases/tag/3.6.8

برای بیشتر دیده شدن و فعال ماندن کامپوننت، لطفا از آدرس اول، دکمه Star را بزنید.