PDA

View Full Version : 3 رقم جدا کردن اعداد



omid_delphi2
یک شنبه 18 فروردین 1387, 07:49 صبح
با سلام
چگونه میتوان در DBEDIT در هنگام تایپ اعداد آنها را 3 رقم 3 رقم جدا کرد من به فیلد مربوطه MASK داده ام ولی هنگام خروج عمل میکند و 3 رقم جدا میشود در حالیکه من میخواهم در هنگام تایپ جدا شود
ممنون

Valadi
یک شنبه 18 فروردین 1387, 08:20 صبح
قبل از ایجاد تاپیک جستجو کن
ضمنا این موضوع مفصلا بحث شده و راهکارهایی و کامپونتهای ارائه شده است

omid_delphi2
یک شنبه 18 فروردین 1387, 11:56 صبح
جستجو کردم
چیزی تو این زمینه پیدا نکردم که دقیقا کار مورد نظر را انجام دهد

Cave_Man
یک شنبه 18 فروردین 1387, 13:19 عصر
باید از سری کامپوننت های FALAD استفاده کنید.
همین نام رو جستجو کنید.

omid_delphi2
دوشنبه 19 فروردین 1387, 09:28 صبح
falad نسخه نمایشی دارد و نسخه کاملش گیر نمیاید
اگر دارید راهنمایی فرمائید

Cave_Man
دوشنبه 19 فروردین 1387, 11:59 صبح
چرا گیر نمیاد این ایمیل صاحب این کامپوننت هست باهاش تماس بگیرید.
ehsan AT tabari DOT info

mortezakiaee
دوشنبه 19 فروردین 1387, 15:40 عصر
ESBPCS رو تو سایت سرچ کن

omid_delphi2
سه شنبه 27 فروردین 1387, 11:06 صبح
سلام
کسی از این آقای تباری ehsan AT tabari DOT info خبری ندارد؟؟
به ایمیل جواب نمیدهد کامپوننت های falad را میخواهم
اگه کسی دارد خبر بدهد
ممنون

دنیای دلفی
سه شنبه 27 فروردین 1387, 23:36 عصر
این یک نمونه برنامه ماشین حساب است که من دستکاریش کردم . هم موقه تایپ اعداد سه رقم سه رقم جدا می کنه هم منفی و هم اعشاری می گیره و عدد را در هنگام تایپ فارسی و به حروف تایپ می کنه می تونه ازش ایده خوبی بگیری .

hadisalahi2
چهارشنبه 28 فروردین 1387, 14:54 عصر
سلام دوست عزیز .
من هم یه یونیت دارم که میتونی ازش استفاده کنی.
اعداد رو از هم جدا میکنه ، جدا کننده های اونا رو حذف میکنه و اعداد رو هم به حروف تبدیل میکنه

omid_delphi2
پنج شنبه 29 فروردین 1387, 19:25 عصر
بچه ها دستتون درد نکنه ولی من یه کامپوننت میخوام falad خوبه و نسخه کاملش گیر نمیاد

Mahdi_S_T
جمعه 30 فروردین 1387, 11:24 صبح
این کامپوننت یه FloadEdit داره که برای وارد کردن مقادیر پولی است و عالیه

omid_delphi2
یک شنبه 01 اردیبهشت 1387, 00:12 صبح
حالا میگید من چه کار کنم؟؟؟!!

mortezakiaee
یک شنبه 01 اردیبهشت 1387, 07:31 صبح
یه بار دیگه گفتم ESBPCS کامپوننت خوبیه، تمام این کار ها رو انجام میده، مجانیه، تو همین سایت هم موجوده
فقط سرچش کن:خجالت:

seaman202008
چهارشنبه 15 خرداد 1387, 22:16 عصر
با سلام
این را امتحان کنید

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

matinebi
چهارشنبه 29 خرداد 1387, 07:55 صبح
با سلام به دوست عزیز hadisalahi2 سرس num2char شما بسیار عالی است اما یک سوال چرا این سه رقم سه رقم رو روی همان edit ی که داریم تایپ میکنم نمیشه اعمال کرد و فقط باید از یک label یا edit دیگه واسه این کار استفاده کرد

مثلا به جای این کد

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

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


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

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

matinebi
چهارشنبه 29 خرداد 1387, 10:21 صبح
دوستان لطفا نظر بدن

مصطفی مختاری
پنج شنبه 16 آبان 1387, 02:25 صبح
بنده یک کدی نوشتم که این کار رو البته در لیبلی کنار فیلد عدد شما انجام می ده :
اعدادی که در ادیت 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
سه شنبه 10 دی 1387, 19:30 عصر
یه بار دیگه گفتم ESBPCS کامپوننت خوبیه، تمام این کار ها رو انجام میده، مجانیه، تو همین سایت هم موجوده
فقط سرچش کن:خجالت:

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

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

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

AliReza Vafakhah
سه شنبه 10 دی 1387, 21:05 عصر
دوستان این کد هم عداد رو سه تا سه جدا می کنه


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
چهارشنبه 11 دی 1387, 01:54 صبح
با تشکر از alireza v.f ولی مشکل جای دیگه است

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

mortezakiaee
چهارشنبه 11 دی 1387, 10:05 صبح
دوست عزیز من این کامپوننت رو نصب کردم ولی چنین چیزی ندیدم لطفا دقیقا بگو کدوم قسمت است و چه طور کار میکنه
در هنگام تایپ کاما میزاره یا بعد از این که تایپ تموم شد مثلا با اینتر

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

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

matinebi
چهارشنبه 11 دی 1387, 10:26 صبح
با تشکر از شما دوست عزیز mortezakiaee کارمو خیلی راحت کردی خدا خیرت بده

gbg
چهارشنبه 11 دی 1387, 12:53 عصر
من قبلا يه كامپوننت اينجا معرفي كردم
http://www.barnamenevis.org/forum/showthread.php?t=95972

a_mosavian
دوشنبه 16 دی 1387, 00:07 صبح
var
FmtSet: TFormatSettings;
begin
FmtSet.ThousandSeparator:=',';
FmtSet.DecimalSeparator:='/';
Text:=FormatFloat(',###.##', FloatNumber, FmtSet);
end;

khoshblagh
سه شنبه 15 بهمن 1387, 12:21 عصر
یکی از کامپوننت ها مثل esblongcurredit رو استفاده کنید. اگه می خواید موقع تایپ سه تا سه تا جدا کنه property thousandseprator رو essauto بذارید.
برای ارسال به بانک هم از
[code]
ESBLongCurrEdit1.AsFloat
[code/]
استفاده کنید

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