با سلام
چگونه میتوان در DBEDIT در هنگام تایپ اعداد آنها را 3 رقم 3 رقم جدا کرد من به فیلد مربوطه MASK داده ام ولی هنگام خروج عمل میکند و 3 رقم جدا میشود در حالیکه من میخواهم در هنگام تایپ جدا شود
ممنون
با سلام
چگونه میتوان در DBEDIT در هنگام تایپ اعداد آنها را 3 رقم 3 رقم جدا کرد من به فیلد مربوطه MASK داده ام ولی هنگام خروج عمل میکند و 3 رقم جدا میشود در حالیکه من میخواهم در هنگام تایپ جدا شود
ممنون
قبل از ایجاد تاپیک جستجو کن
ضمنا این موضوع مفصلا بحث شده و راهکارهایی و کامپونتهای ارائه شده است
جستجو کردم
چیزی تو این زمینه پیدا نکردم که دقیقا کار مورد نظر را انجام دهد
باید از سری کامپوننت های FALAD استفاده کنید.
همین نام رو جستجو کنید.
falad نسخه نمایشی دارد و نسخه کاملش گیر نمیاید
اگر دارید راهنمایی فرمائید
چرا گیر نمیاد این ایمیل صاحب این کامپوننت هست باهاش تماس بگیرید.
ehsan AT tabari DOT info
ESBPCS رو تو سایت سرچ کن
سلام
کسی از این آقای تباری ehsan AT tabari DOT info خبری ندارد؟؟
به ایمیل جواب نمیدهد کامپوننت های falad را میخواهم
اگه کسی دارد خبر بدهد
ممنون
این یک نمونه برنامه ماشین حساب است که من دستکاریش کردم . هم موقه تایپ اعداد سه رقم سه رقم جدا می کنه هم منفی و هم اعشاری می گیره و عدد را در هنگام تایپ فارسی و به حروف تایپ می کنه می تونه ازش ایده خوبی بگیری .
پس از دو سال بررسی بلاخره به بازار آمد
متفاوت و هوشمندانه
سلام دوست عزیز .
من هم یه یونیت دارم که میتونی ازش استفاده کنی.
اعداد رو از هم جدا میکنه ، جدا کننده های اونا رو حذف میکنه و اعداد رو هم به حروف تبدیل میکنه
بچه ها دستتون درد نکنه ولی من یه کامپوننت میخوام falad خوبه و نسخه کاملش گیر نمیاد
این کامپوننت یه FloadEdit داره که برای وارد کردن مقادیر پولی است و عالیه
یه بار دیگه گفتم ESBPCS کامپوننت خوبیه، تمام این کار ها رو انجام میده، مجانیه، تو همین سایت هم موجوده
فقط سرچش کن![]()
با سلام
این را امتحان کنید
متغیر رشته ای= formatcurr('###,###,###',strtocurr(edit1.text))
با سلام به دوست عزیز hadisalahi2 سرس num2char شما بسیار عالی است اما یک سوال چرا این سه رقم سه رقم رو روی همان edit ی که داریم تایپ میکنم نمیشه اعمال کرد و فقط باید از یک label یا edit دیگه واسه این کار استفاده کرد
مثلا به جای این کد
Label2.Caption:=AddComma(edit5.Text);
به این صورت نمیشه انجام داد
edit5.Text:=AddComma(edit5.Text);
تا تغییرات روی همان edit اعمال شود
دوستان لطفا نظر بدن
بنده یک کدی نوشتم که این کار رو البته در لیبلی کنار فیلد عدد شما انجام می ده :
اعدادی که در ادیت EdMablagh وارد می شوند در هنگام تایپ ، در لیبل LblFormat به نمایش در می آیند.
procedure TFrmVBHesab.EdMablaghChange(Sender: TObject);
var tmp_str, mablagh_sanad :string;
i,tool:integer;
begin
mablagh_sanad:=EdMablagh.Text;
if( (StrToInt64Def(mablagh_sanad,-1)+1) > 0 ) then
begin
tmp_str := '';
tool := Length(mablagh_sanad);
for i:=1 to tool do
Insert(mablagh_sanad[i] , tmp_str ,i);
if ((tool mod 3)=0)and (tool >3) then
i := 4
else if (tool=3) then
i := 5
else i := (tool mod 3) + 1;
while i < tool do
begin
Insert(',' , tmp_str ,i);
i := i + 4;
tool := tool+1;
end;
LblFormat.Caption := tmp_str;
end;
if (EdMablagh.Text = '') then
LblFormat.Caption := '0';
end;
دوست عزیز من این کامپوننت رو نصب کردم ولی چنین چیزی ندیدم لطفا دقیقا بگو کدوم قسمت است و چه طور کار میکنه
در هنگام تایپ کاما میزاره یا بعد از این که تایپ تموم شد مثلا با اینتر
من به ادیتی نیاز دارم که در هنگام تایپ کاربر عمل سه رقم سه رقم اعمال شود و زمانی که میخوایم مقدار ادیت رو به بانک منتقل کنم کاما ها رو حذف کنه
تابعی دوست عزیز نوشتند به نام num2str اما عمل حذف کاما رو با این که متدی برای این منظور دارد ولی انجام نمیدهد
دوستان این کد هم عداد رو سه تا سه جدا می کنه
کد HTML:function TForm1.Getdigit(Const Number: String):String; var B,J:String ; K,i:Integer; begin k:=0; For i := Length(Number) downto 1 do begin b := MidStr(Number, i, 1); If (K <> 3) Then J := J + b; If K = 3 Then begin J := J + ',' + b ; K := 0; End; K := K + 1; end; Getdigit := ReverseString(J); end;
با تشکر از alireza v.f ولی مشکل جای دیگه است
(«من به ادیتی نیاز دارم که در هنگام تایپ کاربر عمل سه رقم سه رقم اعمال شود و زمانی که میخوایم مقدار ادیت رو به بانک منتقل کنم کاما ها رو حذف کنه»)
با تشکر از شما دوست عزیز mortezakiaee کارمو خیلی راحت کردی خدا خیرت بده
من قبلا يه كامپوننت اينجا معرفي كردم
http://www.barnamenevis.org/sh...ad.php?t=95972
var
FmtSet: TFormatSettings;
begin
FmtSet.ThousandSeparator:=',';
FmtSet.DecimalSeparator:='/';
Text:=FormatFloat(',###.##', FloatNumber, FmtSet);
end;