کسی maskedit برای تاریخ شمسی داره؟
Printable View
کسی maskedit برای تاریخ شمسی داره؟
دوست عزیز آقای فراهانی یک کامپوننت داره که شامل MaskEdit هم است اما یه کم خرج داره
www.Farsicomponents.com
البته نسخه نمایشی یه کامپوننت هم بنام Falad هم است که دارای MaskEdit تاریخ هم است اما زیاد دقیق نیست که اگه لازم بود با یه جستجو همین سایت پیدا می کنی ( اگه نسخه اصلی آن را پیدا کردی به من هم خبر بده )
آقای ربیعی هم یکی داره
سلام
بنده Shdate رو که برای Farsicomponents.com هست رو گرفتم و 5500 تومن هم دادم...
ولی خداییش میگم واقعا ارزش داره شما هم به نظر من از همون استفاده کنید///
مرسی دوستان!! خودم نوشتم!! :D
خوب اونو اگه مجانیه اینجا هم بذار :wink:نقل قول:
نوشته شده توسط SReza1
سلام
یعنی چی اونوقت که خودم نوشتم ؟ بیشتر توضیج بدید مام بدونیم. :متفکر:
من مشکل تبدیل تاریخ میلادی و این چیزا رو نداشتم!! mask کردن بود!!
شما کامپوننتهای hrdate رو استفاده کنید معرکست!
سلام از این تابع که خودم نوشتم میتونید استفاده کنید . تابع InputDateShamsi در ایونت onkeypress فراخوانی کنید به این شکل:
در قسمت properties کامپوننت maskedit1 خاصیت EDITMask اونو برابر :
procedure TForm1.maskedit1KeyPress(Sender: TObject; var Key: Char);
begin
key:=InputDateShamsi(key,maskedit1.Text,maskedit1. SelStart);
end;
EDITMask: ####/##/##;0;قرار بدین.
//**********
function InputDateShamsi(Key:Char;datem:string;makan:intege r):Char;
// EDITMask: ####/##/##;0;
// onkeypress
var
mah1,mah2,rouz1,rouz2,mah,k:integer;
begin
if (key in['0'..'9']) then
begin
datem:=datem+key; k:=StrToInt(key);
end else datem:=datem;
if StrLen(pchar(datem)) >4 then mah1:=StrToInt(TrimRight(Copy(datem, 5, 1)));
if StrLen(pchar(datem)) > 5 then
begin
mah2:=StrToInt(TrimRight(Copy(datem, 6, 1)));
mah:=StrToInt(TrimRight(Copy(datem, 5, 2)));
end;
if StrLen(pchar(datem)) > 6 then rouz1:=StrToInt(TrimRight(Copy(datem, 7, 1)));
if StrLen(pchar(datem)) > 7 then rouz2:=StrToInt(TrimRight(Copy(datem, 8, 1)));
if (makan=0)and(k<>1) then key:=#0;
if (makan=1)and(k<3) then key:=#0;
if ((makan=5)and(k=1)and(mah2>2))or((makan=5)and(k>1) ) then key:=#0;
if ((makan=6)and(k=0)and(mah1=0)) then key:=#0;
if ((makan=6)and(k>2)and(mah1=1)) then key:=#0;
if (makan=8) then
begin
if k>3 then key:=#0;
if ((k=3)and(rouz2>1)) then key:=#0;
if ((k=3)and(rouz2>0)and (mah>6)) then key:=#0;
end;
if (makan=9) then
begin
if ((k>1)and(rouz1=3)) then key:=#0;
if ((k>0)and(rouz1=3)and (mah>6)) then key:=#0;
end;
Result := key;
end;