View Full Version : جداکردن اعداد سه رقم سه رقم هنگام ورود اطلاعات
beihaghi
پنج شنبه 08 مهر 1389, 21:11 عصر
سلام دوستان
من در حال نوشتن یک برنامه حسابداری با دلفی هفت می باشم در فرمهای ورودداده ها می خواهم اعدادی که از طریق Edit.Text در کادر Edit وارد می شود هنگام تایپ چنانجه رقم چهارم تایپ شد بطور اتوماتیک بین رقم چهارم وسوم یک جداکننده مانند , یا / قرارگیرد و در مورد رقمهای ششم و هفتم هم مجددا همان عمل تکرار گردد والی آخر ......
Felony
پنج شنبه 08 مهر 1389, 21:31 عصر
بیشتر از 10 بار این موضوع پرسیده شده ، جست و جو کنید : https://barnamenevis.org/forum/showthread.php?t=100525
beihaghi
پنج شنبه 08 مهر 1389, 21:42 عصر
لینکی که مشخص کرده اید باز نمی شود من تازه کار هستم خواهش می کنم کمکم کنید
Felony
پنج شنبه 08 مهر 1389, 21:55 عصر
لینک مشکلی ندراه ، این هم تک پست ها :
https://barnamenevis.org/forum/showpost.php?p=499694&postcount=10
https://barnamenevis.org/forum/showpost.php?p=657891&postcount=20
این هم یه کامپوننت برای این کار :
http://www.barnamenevis.org/forum/showthread.php?t=95972
K.Mohammadreza
جمعه 09 مهر 1389, 00:30 صبح
function GetNumber(Str: String): String;
var
I: Integer;
begin
Result := '';
for I := 1 to Length(Str) do
if(Str[I] in ['0'..'9'])then
Result := Result + Str[I];
end;
function Set3Digit(StrSource: String): String;
var
i, j: Integer;
begin
Result := '';
StrSource := GetNumber(StrSource);
j := 0;
for i := Length(StrSource) downto 1 do
begin
Result := StrSource[i] + Result;
Inc(j);
if((j mod 3) = 0)and(i <> 1)then
Result := ',' + Result;
end;
end;
procedure _3Digit(var MyEdit: TEdit; TNfEditChange: TNotifyEvent);
begin
MyEdit.OnChange := nil;
MyEdit.Text := Set3Digit(MyEdit.Text);
MyEdit.SelStart := Length(MyEdit.Text);
MyEdit.OnChange := TNfEditChange;
end;
procedure TfrmEditBuy.edtBedChange(Sender: TObject);
begin
_3Digit(edtBed, edtBedChange);
end;
nilidelphi
جمعه 09 مهر 1389, 16:19 عصر
یک راه ساده استفاده از MaskEdit هست.
یکم روش کار کنی میتونی پیدا کنی.
ولی بهتر بود اول جستجو کنی بعد تاپیک بزنی.در این مورد چندین بار و چندین روش گفته شده.
MOJTABAATEFEH
جمعه 09 مهر 1389, 18:12 عصر
یک راه سریع و ساده استفاده از دستور زیر است:
[function GetNumber(Str: String): String;
var
i: Integer;
begin
Result := '';
for i := 1 to Length(Str) do
if(Str[i] in ['0'..'9'])then
Result := Result + Str[i];
end;
function Set3Digit(StrSource: String): String;
var
i, j: Integer;
begin
Result := '';
j := 0;
for i := Length(StrSource) downto 1 do
begin
Result := StrSource[i] + Result;
Inc(j);
if((j mod 3) = 0)and(i <> 1)then
Result := ',' + Result;
end;
end;
procedure Tfrorm1.Edit1Change(Sender: TObject);
begin
Edit1.OnChange := nil;
Edit1.Text := Set3Digit(GetNumber(Edit1.Text));
Edit1.SelStart := Length(Edit1.Text);
Edit1.OnChange := Edit1Change;
end;
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.