PDA

View Full Version : 'گرفتن عدد در textbox با فرمت خاص



rezamim
سه شنبه 26 خرداد 1383, 08:40 صبح
سلام به همگی
میخواستم ببینم کسی کلاسی برای گرفتن عدد بصورت سه تا سه تا در تکست باکس دارد یا نه ؟ البته به این صورت که مثلا کاربر با وارد کردن عدد 1234 در تکست باکس اول 123 و بعد 1.234 را ببیند نه 123.4 را .
البته خودم یک کلاس دارم ولی کمی ضعیف عمل میکند . بخصوص در مورد کلیدهای حذف و backspace
منتظر جوابهای شما هستم

س.حمیدیانفر
سه شنبه 26 خرداد 1383, 10:36 صبح
سلام
از INPUT MASK استفاده کردید ؟

naderigh
سه شنبه 26 خرداد 1383, 12:26 عصر
آقا اگر امکان دارد کلاس را اراپه نمایید که من هم این مشکل را دارم مخصوصا با تکست باکسی که ابتدا عدد داشته و عدد مربوطه را حذف و سپس عدد جدید را ثبت میکنم ویرگولها باقی میمانند وقتی عدد کامل شد و اینتر زده شد یک مقداری جم و جور میشود که چندان دلچسب نیست

rezamim
سه شنبه 26 خرداد 1383, 16:48 عصر
دوست عزیز آقای حمیدیانفر
بله InputMask جوابی را که من میخواهم نمیدهد و یا شاید من نمیدانم چطوری جوابی را که میخواهم از آن بگیرم.
کلاسی را گفتم بعداٌ در اینجا میگذارم

naderigh
پنج شنبه 28 خرداد 1383, 08:27 صبح
با سلام خدمت همه
من از آدرس http://www.universalthread.com/ نمونه فرم فرم مورد نظرتان را دانلود کردم تغریبا چیز خوبی است البته یک سری مشکلاتی دارد اگر اشکال آن رفع شود عین همان چیزی است که جنابعالی دنبال آن هستید
مثلا من در فرمها تکست باکسها با جدول(بانک) متصل نمیکنم اگر خواستم ردیفی را ویرایبش یا اضافه نمایم با repl این کار را انجام میدهم در صورتی که این فرم valu از داخل برنامه نمیگیرد
حال چنانچه شما حوصله کردید و جوابگوی نیاز جنابعالی بود یک نداپی به ما هم بدهید
فایل هم این است Right aligned numeric input with textboxes

new_day
جمعه 06 آذر 1388, 14:06 عصر
با سلام

میخواستم ببینم کسی کلاسی برای گرفتن عدد بصورت سه تا سه تا در تکست باکس دارد یا نه ؟ البته به این صورت که مثلا کاربر با وارد کردن عدد 1234 در تکست باکس اول 123 و بعد 1.234 را ببیند نه 123.4 را .

من هم اين مشكل را دارم
با توجه به اينكه زمان زيادي از اخرين پست گذشته اما اگر كسي ميتونه كمكم كنه

new_day
چهارشنبه 11 آذر 1388, 20:30 عصر
كسي اطلاعاتي در اين مورد نداشت؟

binyaz2003
چهارشنبه 11 آذر 1388, 21:25 عصر
لطفا دقيق بگيد که input mask رو چي ميزاريد و شرايط textbox چيه مثلا راست به چپه يا نه؟

new_day
چهارشنبه 11 آذر 1388, 21:46 عصر
با سلام
999,999,999,999,999

new_day
چهارشنبه 11 آذر 1388, 21:49 عصر
مشكل هم اينه

کاربر با وارد کردن عدد 1234 در تکست باکس اول 123 و بعد 1.234 را ببیند نه 123.4 را .
در مورد راست به چپ و يا چپ به راست هم فرقي نميكنه ويندوز xp اضافه كردن egypt در زبانهاي عربي هم مشكل حل نشد

new_day
جمعه 13 آذر 1388, 09:39 صبح
اين آدرس را هم پيدا كردم و از روي اون يك كلاس ساختم چندتا مشكل داشت البته ميدونم تفاوت داره ولي براي اينه بعد به اوني كه ميخواهم تبديلش كنم
اگه ممكنه اين ادرسه ببينيد و راهنمايي كنيد
http://fox.wikis.com/wc.dll?Wiki~NumericTextBox

new_day
جمعه 13 آذر 1388, 10:04 صبح
اخر درست شد اما اين كلاس كارش اينه كه فقط عدد ميگيره و تا 3 عدد اعشاري اونا رند ميكنه وبجاي علامت اعشاري از جداسازي كه تعريف كني استفاده ميكنه
نمي دونم ميشه به كلاسي با شرايطي كه ميخواستيم تبديلش كرد يانه؟

binyaz2003
جمعه 13 آذر 1388, 11:50 صبح
من اين و ديده بودم و تست کردم اما چيزي نيست که شما ميخواهيد.از جستجوهايي که کردم اين نتيجه شد که بعضي افراد در GotFocuse ميان inputmask رو برميدارن و در lostfocus اونو قرار ميدن که کاربر اين اشتباه رو نبينه و راه حل ديگه اي فکر نکنم باشه البته خواستم inputmask رو بصورت ديناميک براي textbox تنظيم کنم بر اساس مقدار عدد اما وقتي بازم نميشه.مگر اينکه شما يک کلاس براي خودتون بسازيد و بصورت کاراکتري عدد رو دريافت کنيد و خودتون در keypress جداکردن سه رقم رو خودتون مديريت کنيد و در آخر رشته رو به عدد تبديل کنيد.

new_day
دوشنبه 16 آذر 1388, 00:01 صبح
با سلام
نظرتون در مورد استفاده از olecontrol masktextbox يا olecontrol msmaskedittextچيه و ايا در مورد تنظيمات اون ميتونيد راهنمايي كنيد

new_day
چهارشنبه 18 فروردین 1389, 20:50 عصر
ايا كسي در اين مورد كه از راست به چپ سه رقم سه رقم در حين واردكردن عدد جدا شود كلاسي سراغ نداره

new_day
دوشنبه 22 شهریور 1389, 23:46 عصر
با سلام

کاربر با وارد کردن عدد 1234 در تکست باکس اول 123 و بعد 1.234 را ببیند نه 123.4 را .
ايا كسي در اين مورد كلاسي يا كدي داره

gm_phk
سه شنبه 23 شهریور 1389, 00:27 صبح
با سلام
دوست گرامی اگر فقط هدفتان جداسازی اعداد می باشد در Input Mask هنگام تعریف فرمت
Text Box به جای , از Space یا همان فضای خالی استفاده نمائید
(999 999 999 999)

new_day
سه شنبه 23 شهریور 1389, 11:08 صبح
با سلام
دوست عزيز چه فضاي خالي باشه چه , فرقي نميكنه موضوع اينه كه سه رقم سه رقم از راست جدا بشه نه از چپ يعني اگه فضاي خالي هم بگذاريم وقتي رقم چهارم را وارد ميكنيم بجاي اينكه 4 123 را ببينيم 234 1 را
ببينيم يا مثلا بجاي 7 456 123 ببينيم 567 234 1

ح.حاج حسینی
پنج شنبه 25 شهریور 1389, 12:29 عصر
در صورتی که بخواهید یک عددی فاقد اعشاری وارد کنید فرقی نمی کند که برای جدا سازی عدد در InputMask از , یا SPACE استفاده کرده باشید فقط کافی است در int فرم مقدار textbox مورد نظر را مساوی صفر قرار دهید
مثال thisform.text1.value=0 بعداز وارد کردن عدد مورد نظر با زدن دگمه enter عدد مورد نظر به صورت 234 1 در می آید

new_day
پنج شنبه 25 شهریور 1389, 22:51 عصر
با سلام
موضوع جدا ساز نيست . موضوع اينه كه هنگام ورود اطلاعات از راست به چپ جداسازي انجام بشه نه بعد از زدن اينتر يعني در حين ورود اطلاعات اگه از سه رقم بيشتر شد رقم هزارگان جدا بشه و اگه از شش رقم بيشتر شد همين طور الي اخر

بني حسيني
جمعه 26 شهریور 1389, 12:58 عصر
بعنوان يه پيشنهاد: (نمي دونم عمليه يا نه) تو keypress مرتب طول عدد مقدار وارد شده (به غير از ويرگول) چك بشه وقتي طول مضربي از سه شد (باز به جز ويرگول) به اون يه ويرگول اضافه كنه و نمايش بده و موقع فشار BackSpace اگر كاراكتر آخري ويرگول بود دو تا كاراكتر پاك بشه و ... خلاصه چند تا كليد بايد تعريف بشه. ضمنا فكر كنم بهترين راه استفاده از تابع transform باشه.

new_day
دوشنبه 29 شهریور 1389, 18:19 عصر
با سلام
در مورد transform هنوز بررسي نكردم
اما يه چيزي نوشتم كه نه ميشه اسمش را گذاشت كلاس نه ... حالا اساتيد نگاهي به اون بكنند تا تكميلش كنم براي شروع بد نيست

aliporkareh
جمعه 14 آبان 1389, 14:35 عصر
دوستان اگه از textbox fm2 استفاده مي‌كنيد اين تابع را در change آن قرار دهيد
هنگام تايپ اعداد بصورت آن لاين ارقام جدا ميشوند

THIS.text = _SER(ALLT(THIS.Text))
THIS.text = seragh(ALLT(THIS.Text))
THIS.SelStart = LEN(ALLT(THIS.Text))
تابع هاي seragh و _ser نيز پيوست اين پست ميباشد كه بايد آنهارا دانلود كنيد

new_day
شنبه 20 آذر 1389, 13:41 عصر
با سلام
براي يرگردوندن مقدار عددي چه كار بايد كرد ميشه مثالي بزنيد