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

نام تاپیک: جدا کننده ارقام

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101

    جدا کننده ارقام

    چطوری میشه هنگام ورود اعداد در EDITBOX بصورت اتوماتیک 3 رقم 3 رقم جدا بشه. البته با maskedit این کارو کردم ولی میخوام با EDITBOX این کار انجام بشه.
    ممنونم

  2. #2
    توی on change بنویس Setnum(Sender) این تابع هم اینه


    Procedure TMB.SetNum(Sender:TObject);
    var
    i,L:Integer;
    begin
    i:=TEdit(Sender).SelStart;
    L:=Length(TEdit(Sender).Text);
    TEdit(Sender).Text:=IntToStr1(StrToInt1(TEdit(Send er).Text));
    TEdit(Sender).SelLength:=0;
    TEdit(Sender).SelStart:=i-(l-Length(TEdit(Sender).Text));
    if TEdit(Sender).Text='0' Then
    TEdit(Sender).SelectAll;
    End;


    توابع InttToStr1,StrToInt1 هم توابعی هستند که اعداد را جدا می کنند و به حالت اول بر میگردونن. البته شاید راههای ساده تر هم وجود داشته باشه
    You never know what you can do until you try

  3. #3

    Function TForm1.Fnc_ReturnNum(Prm_Str: String): String;
    begin
    while Pos(',', Prm_Str) > 0 do
    Delete(Prm_Str, Pos(',', Prm_Str), 1);

    Result := Prm_Str;
    end;

    procedure TForm1.Edit1Change(Sender: TObject);
    var
    iPos: Integer;
    begin
    if Length(Edit1.Text) <> 0 then
    begin
    iPos := Edit1.SelStart;
    Edit1.Text := FormatFloat('#,', StrToInt(Fnc_ReturnNum(Edit1.Text)));
    Edit1.SelStart := iPos + 1;
    end;
    end;



    کنترلهای دیگه ای هم مانند ورود اعداد نیاز دارید.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    خیلی ممنون.... عالی بود
    جناب خرسندی از راهنمائیتون خیلی ممنون . از آقای جهرمی هم بخاطر لطفشون ممنونم.

  5. #5
    آقای جهرمی
    باسلام
    لطفاً اگر ممکن است بیشتر توضیح بدهید.
    باتشکر

  6. #6
    کد که توضیح نمی خواد عینا استفاده کنید. میمونه StrToInt1(TEdit(Sender).Text) که اونهم میتونید خودتون با استفاده از روشهائی که آقای خرشندی گفتن پیاده سازی اش کنید
    You never know what you can do until you try

  7. #7
    آقای جهرمی
    با سلام
    من در فرم یک ادیت باکس گذاشتم و در ONCHANGE کد شما را به این صورت نوشتم
    procedure TForm1.Edit1Change(Sender: TObject);
    var
    i,L:Integer;
    begin
    i:=EDIT1.SelStart;
    L:=Length(EDIT1.Text);
    EDIT1.Text:=IntToStr(StrToInt(EDIT1.Text));
    EDIT1.SelLength:=0;
    EDIT1.SelStart:=i-(l-Length(EDIT1.Text));
    if EDIT1.Text='0' Then
    EDIT1.SelectAll;
    End;
    ولی جواب نگرفتم
    لطفاً راهنمایی کنید

  8. #8
    آقای جهرمی
    با سلام
    من در فرم یک ادیت باکس گذاشتم و در ONCHANGE کد شما را به این صورت نوشتم
    procedure TForm1.Edit1Change(Sender: TObject);
    var
    i,L:Integer;
    begin
    i:=EDIT1.SelStart;
    L:=Length(EDIT1.Text);
    EDIT1.Text:=IntToStr(StrToInt(EDIT1.Text));
    EDIT1.SelLength:=0;
    EDIT1.SelStart:=i-(l-Length(EDIT1.Text));
    if EDIT1.Text='0' Then
    EDIT1.SelectAll;
    End;
    ولی جواب نگرفتم
    لطفاً راهنمایی کنید

  9. #9
    اگر به کدی که من نوشتم دقت کنید از StrToInt و StrToInt استفاده نکردم.
    توابعی که من استفاده کردم StrToInt1 و IntToStr1 هستند که خودت باید اونها رو تعریف کنی
    You never know what you can do until you try

  10. #10
    با سلام
    این توابع را کجا بنویسم
    با تشکر
    اگر ممکن است بیشتر توضیح بدهید

  11. #11
    تو فرمت دیگه.
    دو تا تابع هست که باید چزء توابع فرمت (یا یه فرم دیگه) بنویسی
    You never know what you can do until you try

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    جناب جهرمی با سلام
    اگه ممکنه کد Strtoint1 رو توی این تاپیک بگذارید.
    ممنون

  13. #13
    این کد همونی هست که آقای خرسندی تحت عنوان Fnc_ReturnNum نوشتند

    Function TForm1.StrToInt1(Prm_Str: String): String;
    begin
    while Pos(',', Prm_Str) > 0 do
    Delete(Prm_Str, Pos(',', Prm_Str), 1);
    if ParamStr='' Then
    ParamStr='0'
    StrToInt1 := Prm_Str;
    end;
    You never know what you can do until you try

  14. #14
    کاربر دائمی آواتار zman123456
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    بندرعباس
    پست
    515
    سلام
    می دونم خیلی وقت از این تاپیک گذشته ولی برای پربارتر کردن فروم و داشتن روشهای متفاوت این کد رو می گذارم.
    procedure TForm1.Edit1Exit(Sender: TObject);
    var
    counter: integer;
    str: string;
    begin
    counter:=1;
    while counter <= Length(Edit1.Text) do
    begin
    if (((counter - 1) mod 3) = 0) and ((counter - 1) <> 0)then
    begin
    str:=str+',';
    str:=str+copy(Edit1.Text,counter,1);
    end
    else
    str:=str+copy(Edit1.Text,counter,1);
    counter := counter + 1;
    end;
    Edit1.Text:=str;
    end;

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

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