PDA

View Full Version : دلیل تغییر DecimalSeparator در حالت rtlreading



benyaminrahimi
دوشنبه 19 آبان 1393, 17:35 عصر
با سلام

بنده با فرمان

DecimalSeparator :='.';
ThousandSeparator:='،' ;


در متد create جدا کننده اعشار را تنظیم کرده ام ولی وقتی خاصیت کامپوننت به bidmode := bdrighttoleft تغییر میابد این جدا کننده به صورت ',' تغییر میابد ..

طرفه اینکه خاصیت displayformat فیلد مربوطه نیز

"0,.####"



است

میخاستم بدونم دلیل این موضوع چیست و برای رفع آن چه باید کرد ؟؟؟ نمونه عکس ها را درج کرده ام
125494

در عکس بالا جدا کننده "." برای اعشار در حالت راست به چپ به "," تغییر یافته است

hsgpro
دوشنبه 19 آبان 1393, 21:06 عصر
سلام

به نظر من که این مشکل نیست برای پروژه های من تازه مزیت حساب میشه اگه می خواین همون نقطه بشه فکر کنم فقط با ایجاد Custom String برای ستون های DataGridView بتونید درستش کنید.

ببخشید من فکر کردم #C هست به متن توجه نکردم دلفی بلد نیستم اما فکر کنم معادل Custom String یه چیزی تو دلفی باید باشه نه؟

benyaminrahimi
سه شنبه 20 آبان 1393, 09:31 صبح
مرصی از توجهتون ... ولی بحث مربوط تنها ui نیست (نه فقط گرید) تو این مثال خاصیت displayformat روی فیلد دیتا ست تنظیم شده

یوسف زالی
سه شنبه 20 آبان 1393, 10:12 صبح
ممکنه کامپوننت هاتون دستکاری انجام داده باشند.
نمونه دلفی 7 و دلفی XE7 تست کردم در هر دو درست جواب داد و مشکل شما مشاهده نشد.

benyaminrahimi
سه شنبه 20 آبان 1393, 12:25 عصر
مثال بالا با dbgrid در xe و نیز unidac virtual table هست ... شما با چی تست کردین ؟

benyaminrahimi
سه شنبه 20 آبان 1393, 12:31 عصر
من نمونه انجام شده با کامپوننت های دلفی نظیر mask edit را درج کردم
125537

یوسف زالی
سه شنبه 20 آبان 1393, 13:20 عصر
من با DBGrid و ADO تست کردم. عجیبه که با مسک هم تستم درست بوده.
دوباره تست می کنم.

benyaminrahimi
سه شنبه 20 آبان 1393, 14:04 عصر
درست می فرمایید ولی با این شرط تست کنید در قسمت region and language کنترل پنل زبان در قسمت format فارسی ست شده باشد ...

یوسف زالی
سه شنبه 20 آبان 1393, 14:33 عصر
دستورات FloatToStr و StrToFloat رو تست کنید ببینید باز هم جداکننده سه رقمی ساز خودش رو می زنه؟
مثلا:


StrToFloat(FloatToStr(12345.6789));


یا کدهای مشابه.
من با لیبل هم تست کردم مشکل دار شد!
به نظر می رسه ربطی به این جداساز ها نداره و نمایش متن از سیستم گرفته می شه. دلفی نمی فهمه که با تکست طرفه یا با عدد.
من از تنظیمات جداکننده ها برای توابع تبدیلی استفاده کردم اما در کنترل ها نه.
اگر به نتیجه رسیدم (و تونستم وقت بذارم) همینجا می گذارم.

golbafan
یک شنبه 26 بهمن 1393, 09:39 صبح
سلام
مشکل به تنظیمات ویندوز مربوط میشه و مهم نیست با چه زبونی نوشته بشه

برای حل مشکل از روش زیر استفاده کنید:


s:=formatfloat('0,.',d)
// اگر درست نشد ادامه بده
s:=stringreplace(s,decimalseparator,'.')