با سلام
اگر از نسخه های 2009 به بعد استفاده می کنید می توانید از کدهای زیر استفاده کنید:
برای تبدیل اعداد فارسی به انگلیسی از تابع زیر
PersianDigitsToEnglish(AText: string): string;
const
EnglishDigits = '0123456789';
PersianDigits = '۰۱۲۳۴۵۶۷۸۹';
var
I: Integer;
TempString: string;
begin
TempString := AText;
for I := 1 to Length(EnglishDigits) do
TempString := StringReplace(TempString, PersianDigits[i], EnglishDigits[i],
[rfReplaceAll]);
Result := TempString;
end;
و برای تبدیل اعدا انگلیسی به فارسی از تابع زیر:
EnglishDigitsToPersian(AText: string): string;
const
EnglishDigits = '0123456789';
PersianDigits = '۰۱۲۳۴۵۶۷۸۹';
var
I: Integer;
TempString: string;
begin
TempString := AText;
for I := 1 to Length(EnglishDigits) do
TempString := StringReplace(TempString, EnglishDigits[i], PersianDigits[i],
[rfReplaceAll]);
Result := TempString;
end;
و برای استفاده از هر کجا می توانید یک رشته به آن ارسال نمایید و خروجی را به صورت رشته بگیرید. مانند زیر:
// برای تبدیل اعداد داخل یک ادیت به فارسی
Edit1.Text:=EnglishDigitsToPersian(Edit1.Text);
// برای تبدیل اعداد داخل یک ادیت به انگلیسی
Edit1.Text:=PersianDigitsToEnglish(Edit1.Text);
نکته: این کدها برای اعداد فارسی نوشته شده اند.
نکته2: اعداد عربی با اعداد فارسی تفاوت دارند و برای اینکه در کل همه ی اعداد خود را به انگلیسی تبدیل کنید. باید یک تابع هم برای تبدیل اعداد عربی بنویسید که دست خودتون رو می بوسه.