دوستان سلام
توی تکس یک فرم اگر بخواهیم اعداد را همزمان با تایپ بصورت اتوماتیک سه رقمی از یکدیگر جدا کنیم به چه صورت عمل میشود. مثلاً 23،000،000
متشکرم
دوستان سلام
توی تکس یک فرم اگر بخواهیم اعداد را همزمان با تایپ بصورت اتوماتیک سه رقمی از یکدیگر جدا کنیم به چه صورت عمل میشود. مثلاً 23،000،000
متشکرم
در قسمت input Mask تکست به این شکل وارد کن 000.000.000
سلام دوست عزیز؛ خوبید؟ این تکه برنامه که جواب شماست کار خومه:
function delete_kama(s:string):string;
var p:integer;
begin
for p := 1 to length(s) do
if s[p]=',' then
delete(s,p,1);
delete_kama:=s;
end;
procedure Form1.Edit1Change(Sender: TObject);
var i:integer; mystr,s:string;
begin
s:=',';
if Edit1.Text<>'' then
begin
mystr:='';
mystr:=delete_kama(mablagh.Text);
i:=length(mystr);
while i>3 do
begin
insert(s,mystr,i-2);
i:=i-3
end;
mystr:=mystr;
Edit1.Text:=mystr;
Edit1.SelStart:=length(mystr);
end;
end;
سلام
دوست عزیز می تونید در محیط Design فرم و Properties تکس باکس ، خصوصیت Format رو با Standard ست کنید و خصوصیت Decimal Places رو هم اگر مایلید که عدد وارده اعشار نداشته باشه صفر قرار بدین به این ترتیب عدد شما به شکل مورد نظر وارد میشه .
سلام مجدد؛ در کدی که در بالا گذاشتم؛ شما به جای mablagh.Text باید اسم کنترل خودتو بنویسی. مثلاً Edit1.Text
آقا جواد زبان پشت پرده اکسس وی بی ءنه دلفی !
اگه ممکن اون به وی بی تبدیل کن
اِ اِ اِ راست می گی مصطفی؛ اصلاً حواسم نبود. جداً معذرت می خام.
در بخش وی بی دستورات وکداشو گذاشته بودند منتهی کند وسنگین عمل می کرد بااینحال اگه پیدا کردم لینکش رو میذارم
الگوریتم خیلی ساده ای داره: شما باید اول یه تابع بنویسید که یه رشته بگیره (که در واقع همون رشته ی جزء Edit هستش) و با استفاده از توابع رشته؛ کاماهایی رو که قبلاً اضافه شده پاک کنه. حالا رویه ی اصلی شروع می شه و اون اینه که این رویه یا تابع از آخر اون رشته شروع می کنه به حرکت به سمت اول و بعد از هر سه کاراکتر یه کاما به رشته اضافه می کنه. فقط با توجه به این که رشته ی Edit مدام در حال تغییره؛ قبل از اینکه این پروسیجر یا رویه کاما ها رو به رشته اضافه کنه باید تابع اول رو صدا بزنید که کاماهای قبلی رو پاک کنه(چون با تغییر رشته جای کاماها هم عوض می شه). این پروسیجر رو در رویداد OnChange جزء Edit بنویسین(در دلفی بهش می گیم OnChange؛ در وی بی نمی دونم اسمش چیه).
یه نکته هم اینکه کارهای مربوط به اضافه کردن و حذف کردن کاما بوسیله ی توابع مربوط به رشته ها انجام می شه.
امیدوارم این نوشته کمکتون بکنه.
سلام
- در فرمت text box این عبارت رو وارد کن
#,###;(#,###)
با سلام و عرض ادب خدمت اساتید و دوستان عزیز
بنده در حال حاضر یک برنامه نوشتم که کلا سرو کار کاربر با اعداد بزرگ هستش (یک سیستم مالی)...
و مشکل اینه: کاربر که مثلا می خواد عدد 125635000000 رو وارد کنه باید چند بار عدد رو از لحاظ درستی تعداد رقم چک کنه...
حالا می خوام دقیقا درخواستی که توی این تاپیک عنوان شده رو با استفاده از راهنمایی اساتید به نتیجه رسونده و ما هم به جواب برسیم... (مطمئنا این کار با تغییر فرمت انجام نخواهد شد)
قبلا از همکاری دوستان کمال تشکر رو دارم...
یا علی
درروال Change تکست باکس ازکدهای زیر استفاده کنید
Private Sub t1_Change()
Dim s As String
s = t1.Text
t1.Format = "Standard"
t1.SelStart = Len(s) + 1
End Sub