مشخصه Causes Validation - تالار گفتمان آذر فروم





دعوت به همکاری با آذر فروم

 

مشخصه Causes Validation
زمان کنونی: 16-09-1395،02:15 ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: moderator
آخرین ارسال: moderator
پاسخ: 1
بازدید: 344

 
 
رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

موضوع: مشخصه Causes Validation
ارسال: #1
مشخصه Causes Validation
پست‌ها: 1,456
تاریخ عضویت: 22 اردیبهشت 1390
اعتبار: 36
حالت من: Ghafelgir
شايد زمانی که داشتيد روی مشخصات (Properties) مربوط به Text Box نظر می کرديد، مشخصه causes Validation را نيز ديده باشيد اين مشخصه در بسياری از VCLها نيز وجود دارد و دارای کاربرد بسيار زيبايی است که شايد اگر وجود نداشت، برای شبيه سازی آن بوسيله کدنويسی، زمان زيادی را صرف خود می کرد.
فرض کنيد بر روی فرم يک Text Box به نام txtNumber وجود دارد که برای دريافت نمره يک درس دانش آموزی از کاربر، استفاده می شود. ترجيح می دهيم کاربر نتواند اين فرم را save کند (نتواند به سراغ کليد cmdSave برود) مگر اينکه نمره صحيح (که در فاصله صفر تا بيست است،) را وارد نموده باشد. اما مثلاً بتواند روی دکمه cmdCancel برود و فرم را Cancel نمايدو يعنی می خواهيم اگر نمره در دامنه صحيح خود نبود روی برخی ديگر از آنها نرود.
اگر برای رويدادِ(Event)Validate از txtNumber ، چنين داشته باشيم:
Private Sub txtNumber_Validate (Cancel As Boolean)
IF Val (txtNumber) > 20 then
Cancel = True
End IF
End Sub
Event Procedure فوق می گويد هر وقت که txtNumber، Validate شد، بررسی کن که آيا نمره کمتر از 20 هست يا خير که اگر نبود، پارامتر Cancel را True نمايد. حال اگر مشخصه Causes Validationاز هر کنترلی را True نماييم، در صورتی که Val(txtNumber)>20باشد، کاربر نمی تواند، آن کنترل را فوکوس دهد. لذا اگر مشخصه مذکور را برای کليد cmd Save برابر True و برای cmdCancel برابر False تغير دهيم، درصورت نبودن نمره در فاصله مناسب، کاربر می تواند عمليات دکمه Cancel را انجام دهد اما عمليات دکمه Save را خير مگر اينکه دوباره Text Boxمذکور را با عددی مناسب Validate نمايد.
توجه کنيد که می توانيد برای زيبايی برنامه مذکور برای رويداد Key up از txtNumber نيز چنين داشته باشيم.
Private Sub txtNumber_KeyUp (KeyCode As Integer, shift As Integer)
IF Value (txtNumber)>20 then
txtNumber. Forecolore = VBRed
Else
txtNumber. Forecolore = VBBlack
Evd IF
End Sub
که برای نمايش اينکه با وارد نودن نمره ای به کاربر خطايی رخ داده است، رنگ متن آن را به رنگ قرمز (Red) در می آوريم و در غير اينصورت (يعنی بدون خطا) رنگ متن را به رنگ سياه (Black) در خواهيم آورد.
ذکر چند مشخصه ديگر:
1- اگر برای يک کليد (Command Button)، مشخصه Cancel را به True قرار دهيم، در صورت زدن کليد (Escape) ESC توسط کاربر، رويداد Click از اين کليد روی می دهد.
2- اگر برای يک کليد، مشخصه Default را به True تغيير دهيم، در صورت زدن کليد Enter توسط کاربر، رويداد Click از آن روی خواهد داد.
3- اگر برای يک فرم، رويداد Key Preview را به True تغيير دهيم، هر کليدی را کاربر از صفحه کليد فشار دهد، ابتدا اين کليد به رويداد KeyPress از فرم فرستاده می شود و آنگاه به رويداد Key Press از کنترلی که Focus در اختيار آن است، فرستاده می شود.
















گوزلیم عکسین دوشوب پیماندن پیمانیه

گوندریب عشقین منی میخاندن میخانیه

گئتمیشم میخانیه من دردیمه درمان اولام

دردیمی بیر بیر دیم من ساغر و پیمانیه

دردیمه درمان شراب اولدو حبیبیم ساقی لر

گوندریب عشقیم منی گور هانسی داروخانیه


[عکس: images?q=tbn:ANd9GcTiJ4evUTSiPaWN4c5Iczp...VY2wXNRMnQ]
17-06-1390 01:02 ق.ظ
 


[-]
پاسخ سریع
پیام
پاسخ خود را برای این پیام در اینجا بنویسید.


کد تصویری
royalfuns
(غیر حساس به بزرگی و کوچکی حروف)
لطفاً کد نشان داده شده در تصویر را وارد نمایید. این اقدام جهت جلوگیری از ارسال‌های خودکار ضروری می‌باشد.

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان