PDA

View Full Version : نمایش عددهای فارسی



MEhdi Sobhani
دوشنبه 22 آذر 1389, 03:28 صبح
با عرض سلام و خسته نباشید .
از تابع Canvas.TextOut برای کشیدن متن روی یه بیتمپ استفاده میکنم .
مشکلی وجود داره اینه که وقتی متن فقط شامل عدد هست ، عدد ها به صورت انگلیسی نمایش داده میشن .
آیا راهی هست که این عددها رو به صورت یونیکود در آورد تا به صورت فارسی نمایش داده بشن و نمایش هم هیچ ارتباطی با تنظیمات سیستم نداشته باشه .
با تشکر فراوان .

hamid-nic
دوشنبه 22 آذر 1389, 14:52 عصر
از چه ورژن دلفی استفاده می کنید ؟

MEhdi Sobhani
دوشنبه 22 آذر 1389, 22:18 عصر
دلفی 2010

MEhdi Sobhani
سه شنبه 14 دی 1389, 03:45 صبح
این تابع رو نوشتم برای این کار :



function EnglishToPersianNo(TheInput:string):string;
var
i:integer;
begin
for I := 1 to length(TheInput)-1 do
begin
case ord(TheInput[i]) of
48..59 : TheInput[i]:=widechar(1584+ord(TheInput[i]));
46: TheInput[i]:=widechar(47);
end;
end;
result:=TheInput;
end;

Felony
سه شنبه 14 دی 1389, 07:00 صبح
این تابع رو نوشتم برای این کار :



function EnglishToPersianNo(TheInput:string):string;
var
i:integer;
begin
for I := 1 to length(TheInput)-1 do
begin
case ord(TheInput[i]) of
48..59 : TheInput[i]:=widechar(1584+ord(TheInput[i]));
46: TheInput[i]:=widechar(47);
end;
end;
result:=TheInput;
end;



اون 1- تو حلقتون اضافه هست ، در ضمن کدتون میتونه به صورت زیر باشه :

function EnglishToPersianNo(const TheInput: String): String;
var
C: Char;
begin
for C in TheInput do
case ord(C) of
48..59 : Result:= Result + WideChar(1584 + Ord(C));
46: Result:= Result + WideChar(47);
end;
end;