1 ضمیمه
دلیل تغییر DecimalSeparator در حالت rtlreading
با سلام
بنده با فرمان
DecimalSeparator :='.';
ThousandSeparator:='،' ;
در متد create جدا کننده اعشار را تنظیم کرده ام ولی وقتی خاصیت کامپوننت به bidmode := bdrighttoleft تغییر میابد این جدا کننده به صورت ',' تغییر میابد ..
طرفه اینکه خاصیت displayformat فیلد مربوطه نیز
"0,.####"
است
میخاستم بدونم دلیل این موضوع چیست و برای رفع آن چه باید کرد ؟؟؟ نمونه عکس ها را درج کرده ام
ضمیمه 125494
در عکس بالا جدا کننده "." برای اعشار در حالت راست به چپ به "," تغییر یافته است
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
سلام
به نظر من که این مشکل نیست برای پروژه های من تازه مزیت حساب میشه اگه می خواین همون نقطه بشه فکر کنم فقط با ایجاد Custom String برای ستون های DataGridView بتونید درستش کنید.
ببخشید من فکر کردم #C هست به متن توجه نکردم دلفی بلد نیستم اما فکر کنم معادل Custom String یه چیزی تو دلفی باید باشه نه؟
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
مرصی از توجهتون ... ولی بحث مربوط تنها ui نیست (نه فقط گرید) تو این مثال خاصیت displayformat روی فیلد دیتا ست تنظیم شده
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
ممکنه کامپوننت هاتون دستکاری انجام داده باشند.
نمونه دلفی 7 و دلفی XE7 تست کردم در هر دو درست جواب داد و مشکل شما مشاهده نشد.
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
مثال بالا با dbgrid در xe و نیز unidac virtual table هست ... شما با چی تست کردین ؟
2 ضمیمه
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
من نمونه انجام شده با کامپوننت های دلفی نظیر mask edit را درج کردم
ضمیمه 125537
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
من با DBGrid و ADO تست کردم. عجیبه که با مسک هم تستم درست بوده.
دوباره تست می کنم.
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
درست می فرمایید ولی با این شرط تست کنید در قسمت region and language کنترل پنل زبان در قسمت format فارسی ست شده باشد ...
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
دستورات FloatToStr و StrToFloat رو تست کنید ببینید باز هم جداکننده سه رقمی ساز خودش رو می زنه؟
مثلا:
StrToFloat(FloatToStr(12345.6789));
یا کدهای مشابه.
من با لیبل هم تست کردم مشکل دار شد!
به نظر می رسه ربطی به این جداساز ها نداره و نمایش متن از سیستم گرفته می شه. دلفی نمی فهمه که با تکست طرفه یا با عدد.
من از تنظیمات جداکننده ها برای توابع تبدیلی استفاده کردم اما در کنترل ها نه.
اگر به نتیجه رسیدم (و تونستم وقت بذارم) همینجا می گذارم.
نقل قول: دلیل تغییر DecimalSeparator در حالت rtlreading
سلام
مشکل به تنظیمات ویندوز مربوط میشه و مهم نیست با چه زبونی نوشته بشه
برای حل مشکل از روش زیر استفاده کنید:
s:=formatfloat('0,.',d)
// اگر درست نشد ادامه بده
s:=stringreplace(s,decimalseparator,'.')