نمایش نتایج 1 تا 19 از 19

نام تاپیک: تفکیک همزمان با ثبت اعداد سه رقمی در فرم

  1. #1

    تفکیک همزمان با ثبت اعداد سه رقمی در فرم

    دوستان سلام
    توی تکس یک فرم اگر بخواهیم اعداد را همزمان با تایپ بصورت اتوماتیک سه رقمی از یکدیگر جدا کنیم به چه صورت عمل میشود. مثلاً 23،000،000
    متشکرم

  2. #2
    کاربر دائمی آواتار Ali_Fallah
    تاریخ عضویت
    مهر 1384
    محل زندگی
    همین نزدیکی ها
    پست
    791
    در قسمت input Mask تکست به این شکل وارد کن 000.000.000

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531
    سلام دوست عزیز؛ خوبید؟ این تکه برنامه که جواب شماست کار خومه:
    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;

  4. #4
    کاربر دائمی آواتار مهدی قربانی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    2,435
    سلام
    دوست عزیز می تونید در محیط Design فرم و Properties تکس باکس ، خصوصیت Format رو با Standard ست کنید و خصوصیت Decimal Places رو هم اگر مایلید که عدد وارده اعشار نداشته باشه صفر قرار بدین به این ترتیب عدد شما به شکل مورد نظر وارد میشه .

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531
    سلام مجدد؛ در کدی که در بالا گذاشتم؛ شما به جای mablagh.Text باید اسم کنترل خودتو بنویسی. مثلاً Edit1.Text

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    997
    آقا جواد زبان پشت پرده اکسس وی بی ءنه دلفی !
    اگه ممکن اون به وی بی تبدیل کن

  7. #7
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531
    اِ اِ اِ راست می گی مصطفی؛ اصلاً حواسم نبود. جداً معذرت می خام.

  8. #8
    نقل قول نوشته شده توسط Ali_Fallah مشاهده تاپیک
    در قسمت input Mask تکست به این شکل وارد کن 000.000.000
    باتشکر از شما ولی مقادر متغیرند و بهمین علت برای اعدادوارقام کمتر یا بیشتر از مقدار داده شده در input Mask جواب نمیدند

    نقل قول نوشته شده توسط mehdi-gh مشاهده تاپیک
    سلام
    دوست عزیز می تونید در محیط Design فرم و Properties تکس باکس ، خصوصیت Format رو با Standard ست کنید و خصوصیت Decimal Places رو هم اگر مایلید که عدد وارده اعشار نداشته باشه صفر قرار بدین به این ترتیب عدد شما به شکل مورد نظر وارد میشه .
    دوست عزیز فعلاً هم طبق فرمایش شما عمل میکنه ولی میخواهیم همزمان با تایپ اعداد تفکیک بشن

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    997
    در بخش وی بی دستورات وکداشو گذاشته بودند منتهی کند وسنگین عمل می کرد بااینحال اگه پیدا کردم لینکش رو میذارم

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    997
    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    اِ اِ اِ راست می گی مصطفی؛ اصلاً حواسم نبود. جداً معذرت می خام.
    مهم الگوریتم ء لطف کن الگوریتمش رو بگو خودمون یه جورای تبدیلش می کنیم به وی بی

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    997
    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    اِ اِ اِ راست می گی مصطفی؛ اصلاً حواسم نبود. جداً معذرت می خام.
    مهم الگوریتم ء لطف کن الگوریتمش رو بگو خودمون یه جورای تبدیلش می کنیم به وی بی

  12. #12
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531
    الگوریتم خیلی ساده ای داره: شما باید اول یه تابع بنویسید که یه رشته بگیره (که در واقع همون رشته ی جزء Edit هستش) و با استفاده از توابع رشته؛ کاماهایی رو که قبلاً اضافه شده پاک کنه. حالا رویه ی اصلی شروع می شه و اون اینه که این رویه یا تابع از آخر اون رشته شروع می کنه به حرکت به سمت اول و بعد از هر سه کاراکتر یه کاما به رشته اضافه می کنه. فقط با توجه به این که رشته ی Edit مدام در حال تغییره؛ قبل از اینکه این پروسیجر یا رویه کاما ها رو به رشته اضافه کنه باید تابع اول رو صدا بزنید که کاماهای قبلی رو پاک کنه(چون با تغییر رشته جای کاماها هم عوض می شه). این پروسیجر رو در رویداد OnChange جزء Edit بنویسین(در دلفی بهش می گیم OnChange؛ در وی بی نمی دونم اسمش چیه).
    یه نکته هم اینکه کارهای مربوط به اضافه کردن و حذف کردن کاما بوسیله ی توابع مربوط به رشته ها انجام می شه.
    امیدوارم این نوشته کمکتون بکنه.

  13. #13
    نقل قول نوشته شده توسط moustafa مشاهده تاپیک
    مهم الگوریتم ء لطف کن الگوریتمش رو بگو خودمون یه جورای تبدیلش می کنیم به وی بی
    جناب moustafa اگر فرصت حل مساله را داشتید ممنون میشم راهنمایی بفرمائید.

  14. #14
    سلام
    • در فرمت text box این عبارت رو وارد کن
      #,###;(#,###)

  15. #15
    نقل قول نوشته شده توسط Shahram1974 مشاهده تاپیک
    سلام


    • در فرمت text box این عبارت رو وارد کن
      #,###;(#,###)

    از توجه شما متشکرم
    فقط نکته ای که باید در نظر داشت هدف تفکیک ارقام بطور همزمان با ثبت (ورود) اعداد است.
    به نظر شما با این فرمت میشود همزمان با تایپ اعداد در تکس باکس سه رقم سه رقم جدا شوند؟

  16. #16
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ايران
    پست
    38

    نقل قول: تفکیک همزمان با ثبت اعداد سه رقمی در فرم

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    سلام دوست عزیز؛ خوبید؟ این تکه برنامه که جواب شماست کار خومه:
    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;
    کسي مي تونه اين کد رو به وي بي تبديل کنه؟

  17. #17
    کاربر دائمی آواتار emami.sie
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    طبس
    پست
    501

    نقل قول: تفکیک همزمان با ثبت اعداد سه رقمی در فرم

    با سلام و عرض ادب خدمت اساتید و دوستان عزیز
    بنده در حال حاضر یک برنامه نوشتم که کلا سرو کار کاربر با اعداد بزرگ هستش (یک سیستم مالی)...
    و مشکل اینه: کاربر که مثلا می خواد عدد 125635000000 رو وارد کنه باید چند بار عدد رو از لحاظ درستی تعداد رقم چک کنه...
    حالا می خوام دقیقا درخواستی که توی این تاپیک عنوان شده رو با استفاده از راهنمایی اساتید به نتیجه رسونده و ما هم به جواب برسیم... (مطمئنا این کار با تغییر فرمت انجام نخواهد شد)
    قبلا از همکاری دوستان کمال تشکر رو دارم...
    یا علی

  18. #18
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: تفکیک همزمان با ثبت اعداد سه رقمی در فرم

    درروال Change تکست باکس ازکدهای زیر استفاده کنید

    Private Sub t1_Change()
    Dim s As String
    s = t1.Text
    t1.Format = "Standard"
    t1.SelStart = Len(s) + 1
    End Sub

  19. #19
    کاربر دائمی آواتار emami.sie
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    طبس
    پست
    501

    نقل قول: تفکیک همزمان با ثبت اعداد سه رقمی در فرم

    نقل قول نوشته شده توسط Abbas Amiri مشاهده تاپیک
    درروال Change تکست باکس ازکدهای زیر استفاده کنید

    Private Sub t1_Change()
    Dim s As String
    s = t1.Text
    t1.Format = "Standard"
    t1.SelStart = Len(s) + 1
    End Sub
    با سلام و عرض ادب خدمت استاد عزیز
    باز هم مثل همیشه کوتاهترین و بهترین جواب رو شاهد هستیم...
    فقط یک نکته برای سایر دوستان که حتما توجه داشته باشن باید Decimal Place فیلد مربوطه صفر باشه...
    انشالله که همیشه سالم و موفق باشید...
    باز هم ممنون
    یا علی

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •