PDA

View Full Version : استفاده از ( Shamsi.dll)



x_man_731
چهارشنبه 20 مهر 1384, 03:41 صبح
چطور میتوان از فایل shamsi.dll در دلفی استفاده کرد ؟

Mogtaba2
جمعه 06 آبان 1384, 20:56 عصر
دوستان سلام :
آقا اگه کسی بلده بگه ما هم نیاز داریم بدونیم
درضمن این فایل دارای توابع کامل تاریخ شمسی و میلادی است . برای استفاده در ویژوال بیسیک مشکلی ندارم چون فایل راهنمایی کاملی دارد
در ضمن آدرس این فایل : http://www.oxinsoft.com/shamsidll/about.htm

amir_22
پنج شنبه 25 اسفند 1384, 09:50 صبح
توضیح دهید این فایل چی هست و چه کار میکند

Mona_r
دوشنبه 14 فروردین 1385, 10:47 صبح
دوستان سلام :
آقا اگه کسی بلده بگه ما هم نیاز داریم بدونیم
درضمن این فایل دارای توابع کامل تاریخ شمسی و میلادی است . برای استفاده در ویژوال بیسیک مشکلی ندارم چون فایل راهنمایی کاملی دارد
در ضمن آدرس این فایل : http://www.oxinsoft.com/shamsidll/about.htm
///////////////////////
ممنون . فایل shamsi.dll رو پیدا کردم

Mona_r
دوشنبه 14 فروردین 1385, 10:49 صبح
ممنون . فایل shamsi.dll رو پیدا کردم

davoodmz
سه شنبه 15 فروردین 1385, 09:58 صبح
اگر کسی روش کارش را بلده لطفاً بفرماید.

hp1361
چهارشنبه 03 خرداد 1385, 18:48 عصر
سلام
اقا اگه یکی راهنمایی کنه چطور از این استفاده کنیم ممنون میشم
در دلفی رو منظورمه

hp1361
چهارشنبه 18 مرداد 1385, 18:14 عصر
سلام

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

موفق باشین

rezvan_DP
چهارشنبه 18 مرداد 1385, 21:38 عصر
با سلام به hp1361 عزیز
می خواستم ازتون تشکر کنم به خاطر راهنمای خوبی که برای رجیستر کردن shamsi.dll تهیه کردید.کامل و جامع بود.

اما مشکل در استفاده از shamsi.dll این هستش که اگر برنامه بخواد رو سیستم های مختلف اجرا بشه باید این dll رجیستر بشه(با regsvr32).
من دنبال این مطلب بودم که چه جوری این کار رو با کد نویسی انجام بدم که با راهنمایی آقای احدی مشکل حل شد.(البته هنوز رو سیستم دیگه ای امتحان نکردم ولی فکر نمی کنم به مشکل بخوره).
اینم لینک راهنمای رجیستر کردن از طریق کدنویسیhttp://babakdelphi.blogsky.com/

Mahmood_M
شنبه 28 مرداد 1385, 01:17 صبح
سلام ...
منم نحوه استفاده و خود اون فایل رو قبلا تهیه کردم وتوی یکی از تاپیکهای همین سایت گذاشتم ...
اینم لینک تاپیک :
کلیک کنید (http://www.barnamenevis.org/forum/showthread.php?t=50716)
من نحوه استفاده از چند تا از توابع مهم اون رو هم توی فایل آموزش توضیح دادم ...

یه چیز دیگه :
با یه کد کوچیک از توابع API هم می شه یک DLL رو رجسیتر کرد :

ShellExecute(Handle, 'Open', 'regsrv32', 'Shamsi.dll', '\i', 2);
سوئیچ i\ برای Install و سوئیچ u\ برای UnInstall ...
موفق باشید ...

Mazaher_md85
چهارشنبه 24 آبان 1385, 12:03 عصر
در این نوشته کوتاه سعی دارم که توابع استفاده شده در یونیت (Unit) با نام UFarsiDate را توضیح بدم.
این یونیت که به صورت فایل از طریق این سایت قابل دریافت است، برای تبدیل تاریخ میلادی به شمسی و برعکس مورد استفاده قرار می گیرد. از آنجایی که در داخل این فایل هیچ توضیحی وجود ندارد بر آن شدم تا مقاله در مورد کاربرد آن بنویسم. امیدوارم مورد توجه شما قرار گیرد.


اصل مطلب:
توجه: در این توابع TfarDateTime با TDateTime هیچ فرقی ندارد. فقط برای اینکه تاریخ فارسی از تاریخ میلادی تمییز داده شود مورد استفاده قرار گرفته است.
از اصلی ترین تابع شروع می کنم:

تابع MiladyToShamsi:
Function MiladyToShamsi (DTime:tdateTime):TfarDateTime;
تاریخ میلادی در قالب TDateTimeورودی:تاریخ شمسی در قالب TDateTimeخروجی:تبدیل تاریخ میلادی به شمسی در قالب استاندارد دلفی (TDateTime)کاربرد:

تابع ShamsiToMilady:
Function ShamsiToMilady (DTime:TfarDateTime):TDateTime;
تاریخ شمسی در قالب TDateTimeورودی:تاریخ میلادی در قالب TDateTimeخروجی:تبدیل تاریخ شمسی به میلادی در قالب استاندارد دلفی (TDateTime)کاربرد:

تابع MiladyToShamsistr:
Function MiladyToShamsistr (DTime:tdateTime):String;
تاریخ میلادی در قالب TDateTimeورودی:تاریخ شمسی در قالب رشته (string) مثلا: 1384/9/29خروجی:تبدیل تاریخ میلادی به شمسی به صورت رشته در زمانهایی که با نوع رشته نیازمندید.کاربرد:

تابع MiladyToShamsiInt:
Function MiladyToShamsiInt (DTime:tdateTime;var Year,Month,Day:word):TfarDateTime;
تاریخ میلادی در قالب TDateTime !توجه کنید که پارامتر DTime فقط ورودی می باشند.ورودی:تاریخ شمسی هم به صورت به صورت جدا جدا و عددی و هم در قالب TDateTimeخروجی:تبدیل تاریخ میلادی به شمسیکاربرد:

تابع FarEncodeDate:
function FarEncodeDate (Year, Month, Day: Word): TfarDateTime;
تاریخ شمسی به صورت سال، ماه، روزورودی:تاریخ شمسی در قالب TDateTimeخروجی:تبدیل تاریخ شمسی به میلادی از حالت جداگانه (روز، ماه، سال) به قالب استاندارد دلفی (TDateTime)کاربرد:

تابع FarDecodeDate:
procedure FarDecodeDate (const DateTime: TDateTime; var Year, Month, Day: Word);
تاریخ شمسی در قالب TDateTimeورودی:تاریخ شمسی به صورت جداگانهخروجی:تبدیل قالب استاندارد دلفی (TDateTime) به مقادیر روز، ماه، سالکاربرد:

تابع farDateToStr:
function farDateToStr (dateTime:TfarDateTime):string;
تاریخ شمسی در قالب TDateTimeورودی:تاریخ شمسی به صورت رشته (string)خروجی:تبدیل نوع تاریخ شمسی از قالب استاندارد دلفی (TDateTime) به صورت رشته(string)کاربرد:

تابع farDateTimeToStr:
function farDateTimeToStr (const DateTime: TfarDateTime): string;
تاریخ شمسی در قالب TDateTimeورودی:تاریخ شمسی به صورت رشته (string) همراه با زمانخروجی:در صورتی که نیاز باشد تا هم تاریخ و هم زمان در کنار هم باشند از این تابع استفاده کنید.کاربرد:

تابع farFormatDateTime:
function farFormatDateTime (const Format: string; DateTime: TfarDateTime): string;
قالب تاریخ خروجی به صورت رشته (مثلا yyyy/mm/dd) و تاریخ شمسی در قالب TDateTimeورودی:تاریخ شمسی در قالب تعیین شدهخروجی:برای اینکه تاریخ را در قالب های مختلف در بیاورید از این تابع استفاده کنید. مثلا 1383:9:29کاربرد:

تابع farStrToDateDef:
function farStrToDateDef (const S: string; const Default: TfarDateTime): TDateTime;
رشته حاوی تاریخ فارسی و تاریخ پیشفرض برای مواقع بروز خطاورودی:قالب استاندارد دلفی (TDateTime)خروجی:تبدیل رشته (string) به قالب استاندارد دلفی (TDateTime). در صورتی که به علت استاندارد نبودن رشته حاوی تاریخ و بروز خطا، مقدار پارامتر default برگردانده خواهد شد.کاربرد:

تابع farStrToDate:
function farStrToDate (const S: string): TfarDateTime;
رشته حاوی تاریخ فارسیورودی:قالب استاندارد دلفی (TDateTime)خروجی:تبدیل رشته (string) به قالب استاندارد دلفی (TDateTime).
هشدار: این تابع بسیار حساس می باشد و در صورت درست نبودن رشته ورودی پیغام خطا خواهد داد. حتی به قالب رشته ورودی در ویندوز های مختلف حساس بوده باعث بروز خطا می شود. (مثلا 1383/9/30 ممکن فقط در یک ویندوز برای آن تابع معتبر باشد و ویندوز دیگر با خطا روبرو شوید).
توصیه می شود از رشته هایی که توسط تابع farDateToStr تولید میشود به عنوان ورودی استفاده نمایید.کاربرد:

تابع farYearOf:
function farYearOf (const AValue: TfarDateTime): Word;
تاریخ شمسی در قالب TDateTimeورودی:سال تاریخ شمسیخروجی:برای استخراج و یا فهمیدن سال از قالب TDateTime مورد استفاده می باشد.کاربرد:

تابع farMonthOf:
function farMonthOf (const AValue: TfarDateTime): Word;
تاریخ شمسی در قالب TDateTimeورودی:ماه از سالخروجی:برای بدست آوردن ماه مورد استفاده می باشد.کاربرد:

تابع farWeekOf:
function farWeekOf (const AValue: TfarDateTime): Word;
تاریخ شمسی در قالب TDateTimeورودی:هفته از سالخروجی:برای بدست آوردن هفته جاری در پارامتر ورودی مورد استفاده می باشد.کاربرد:

تابع farDayOf:
function farDayOf(const AValue: TfarDateTime): Word;
تاریخ شمسی در قالب TDateTimeورودی:روز از ماهخروجی:برای بدست آوردن روز جاری در پارامتر ورودی مورد استفاده می باشد.کاربرد:

تابع farDayOfTheWeek:
function farDayOfTheWeek(const AValue: TfarDateTime): Word;
تاریخ شمسی در قالب TDateTimeورودی:روز از هفتهخروجی:برای بدست آوردن روز از هفته مورد استفاده می باشد.کاربرد:

تابع farDecodeDateWeek:
procedure farDecodeDateWeek(const AValue: TfarDateTime; out AYear,AWeekOfYear, ADayOfWeek: Word);
تاریخ شمسی در قالب TDateTimeورودی:سال شمسی ، هفته از سال و روز از هفتهخروجی:تبدیل قالب TDateTime به موارد فوقکاربرد:

با تشکر از توجه شما
مظاهر دیانی:تشویق:
این فایل ضمیمه محتوی یک فایل MultiMedia مربوط به آموزش کاربرد این Dll است .

absent
چهارشنبه 24 مرداد 1386, 15:10 عصر
سلام؛ ظاهراً خیلی دیر رسیدم اما یه یونیت خیلی جالب برای این کار دارم اگه احتیاج دارید پیام بدید براتون بذارم

narges.ghaedi
چهارشنبه 30 آبان 1386, 14:04 عصر
سلام
من مشکلی با shamsi.dll دارم انگار تبدیل زیر را اشتباه انجام میده .چرااا؟


march 19 1980 28/12/1358
march 20 1980 29/12/1359 -> 29/12/1358
march 21 1980 2/1/1359 -> 1/1/1359

taha_Delphi
چهارشنبه 22 اسفند 1386, 14:27 عصر
بعد از نصب dll با regsrv32


program shamsi;

{$mode objfpc}{$H+}{$AppType GUI}

Uses ComObj, Windows;

Var
ShamsiClass: Variant;
ResultDate : String;

begin
ShamsiClass:=CreateOleObject('ShamsiDLL.ClassShams i');

ResultDate:=ShamsiClass.Shamsi();
MessageBox(0, pchar(ResultDate), 'Current Date', 64);

ResultDate:=ShamsiClass.Miladi2Shamsi('2008/03/11');
MessageBox(0, pchar(ResultDate), '2008/03/11', 64);

ResultDate:=ShamsiClass.Shamsi2Miladi('1386/12/21');
MessageBox(0, pchar(ResultDate), '1386/12/21', 64);
end.


در انتها می خواستم بگم این دی ال ال تو محاسباتش اشتباه می کنه مثلا تاریخ 11/03/2008رو به اشتباه 20 اسفند 86 نشون میده

ar_babaali
پنج شنبه 29 فروردین 1387, 13:00 عصر
با این همه تعریف که از این dll در سایت اوکسین آمده ولی من در یک برنامه مهم که با تاریخ سر و کار داشت از آن استفاده کردم ولی در اسفند 86 تاریخ تبدیلی آن اشتباه شد و از تاریخ 2/1/87 به بعد را درست تبدیل کرد. یعنی ند روزی را اشتباه تبدیل می کرد و دلیل آن را هم نمیدانم. می توانید با نصب آن و تغییر تاریخ سیستم خود آنرا تست نمایید.

saeed_molaali
جمعه 28 شهریور 1393, 20:40 عصر
درسته من هم با اطمينان كامل از اين dll استفاده كردم كه در نهايت جواب نداد و تو محاسباتش اشتباه كرد

یوسف زالی
سه شنبه 01 مهر 1393, 22:42 عصر
می تونید از توابعی که لینکش در امضای بنده هست استفاده کنید.