# Native Code > برنامه نویسی در Delphi > کامپوننت های سایر شرکت ها، و توسعه کامپوننت >  3 رقم جدا کردن اعداد

## omid_delphi2

با سلام
چگونه میتوان در DBEDIT در هنگام تایپ اعداد آنها را 3 رقم 3 رقم جدا کرد من به فیلد مربوطه MASK داده ام ولی هنگام خروج عمل میکند و 3 رقم جدا میشود در حالیکه من میخواهم در هنگام تایپ جدا شود
ممنون

----------


## Valadi

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

----------


## omid_delphi2

جستجو کردم
چیزی تو  این زمینه پیدا نکردم که دقیقا کار مورد نظر را انجام دهد

----------


## Cave_Man

باید از سری کامپوننت های FALAD استفاده کنید.
همین نام رو جستجو کنید.

----------


## omid_delphi2

falad نسخه نمایشی دارد و نسخه کاملش گیر نمیاید
اگر دارید راهنمایی فرمائید

----------


## Cave_Man

چرا گیر نمیاد این ایمیل صاحب این کامپوننت هست باهاش تماس بگیرید.
ehsan AT tabari DOT info

----------


## mortezakiaee

ESBPCS رو تو سایت سرچ کن

----------


## omid_delphi2

سلام 
 کسی از این آقای تباری ehsan AT tabari DOT info خبری ندارد؟؟
به ایمیل جواب نمیدهد کامپوننت های falad را میخواهم
اگه کسی دارد خبر بدهد
ممنون

----------


## دنیای دلفی

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

----------


## hadisalahi2

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

----------


## omid_delphi2

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

----------


## Mahdi_S_T

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

----------


## omid_delphi2

حالا میگید من چه کار کنم؟؟؟!!

----------


## mortezakiaee

یه بار دیگه گفتم ESBPCS کامپوننت خوبیه، تمام این کار ها رو انجام میده، مجانیه، تو همین سایت هم موجوده
فقط سرچش کن :خجالت:

----------


## seaman202008

با سلام 
این را امتحان کنید 

متغیر رشته ای= formatcurr('###,###,###',strtocurr(edit1.text))

----------


## matinebi

با سلام به دوست عزیز hadisalahi2 سرس num2char شما بسیار عالی است اما یک سوال چرا این سه رقم سه رقم رو روی همان edit ی که داریم تایپ میکنم نمیشه اعمال کرد و فقط باید از یک label یا edit دیگه واسه این کار استفاده کرد

مثلا به جای این کد 
Label2.Caption:=AddComma(edit5.Text);

به این صورت نمیشه انجام داد 

edit5.Text:=AddComma(edit5.Text);

تا تغییرات روی همان edit اعمال شود

----------


## matinebi

دوستان لطفا نظر بدن

----------


## مصطفی مختاری

بنده یک کدی نوشتم که این کار رو البته در لیبلی کنار فیلد عدد شما انجام می ده :
اعدادی که در ادیت 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;

----------


## matinebi

> یه بار دیگه گفتم ESBPCS کامپوننت خوبیه، تمام این کار ها رو انجام میده، مجانیه، تو همین سایت هم موجوده
> فقط سرچش کن


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

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

تابعی دوست عزیز نوشتند به نام num2str اما عمل حذف کاما رو  با این که متدی برای این منظور دارد ولی انجام نمیدهد

----------


## AliReza Vafakhah

دوستان این کد هم عداد رو سه تا سه جدا می کنه


```
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;
```

----------


## matinebi

با تشکر از alireza v.f ولی مشکل جای دیگه است 

(«من به ادیتی نیاز دارم که در هنگام تایپ کاربر عمل سه رقم سه رقم اعمال شود و زمانی که میخوایم مقدار ادیت رو به بانک منتقل کنم کاما ها رو حذف کنه»)

----------


## mortezakiaee

> دوست عزیز من این کامپوننت رو نصب کردم ولی چنین چیزی ندیدم لطفا دقیقا بگو کدوم قسمت است و چه طور کار میکنه 
> در هنگام تایپ کاما میزاره یا بعد از این که تایپ تموم شد مثلا با اینتر 
> 
> من به ادیتی نیاز دارم که در هنگام تایپ کاربر عمل سه رقم سه رقم اعمال شود و زمانی که میخوایم مقدار ادیت رو به بانک منتقل کنم کاما ها رو حذف کنه
> 
> تابعی دوست عزیز نوشتند به نام num2str اما عمل حذف کاما رو  با این که متدی برای این منظور دارد ولی انجام نمیدهد


یکی از کامپوننت ها مثل esblongcurredit رو استفاده کنید. اگه می خواید موقع تایپ سه تا سه تا جدا کنه property thousandseprator رو essauto بذارید.
برای ارسال به بانک هم از 
[code]
ESBLongCurrEdit1.AsFloat
[code/]
استفاده کنید

----------


## matinebi

با تشکر از شما دوست عزیز  mortezakiaee کارمو خیلی راحت کردی خدا خیرت بده

----------


## gbg

من قبلا يه كامپوننت اينجا معرفي كردم
http://www.barnamenevis.org/sh...ad.php?t=95972

----------


## a_mosavian

var
  FmtSet: TFormatSettings;
begin
  FmtSet.ThousandSeparator:=',';
  FmtSet.DecimalSeparator:='/';
  Text:=FormatFloat(',###.##', FloatNumber, FmtSet);
end;

----------


## khoshblagh

> یکی از کامپوننت ها مثل esblongcurredit رو استفاده کنید. اگه می خواید موقع تایپ سه تا سه تا جدا کنه property thousandseprator رو essauto بذارید.
> برای ارسال به بانک هم از 
> [code]
> ESBLongCurrEdit1.AsFloat
> [code/]
> استفاده کنید


این  کامپوننت  از کجا پیدا کنم. من تازه این تاپیک را دیدم . با تشکر

----------

