14-10-12, 02:21 PM
كاتب الموضوع : أحمد جمال
ما هو
Ascii ؟
هو اختصار لـ American Standerd Code for Information Interchange أو الشفرة الأمريكية القياسية لتبادل المعلومات .
وهي رموز تقابل الأحرف الهجائية والرموز والأرقام وغير ذلك ، فنجد أن 65 في Ascii تمثل حرف a و 66 تمثل b وذلك حتى z ، كما تبدأ الأحرف A من رقم 92 ، أما الأرقام فهي بين 49 للصفر و 58 للتسعة .
ويشكل هذا النظام أسلوب قياسي للترميز بين منتجي ومشغلي نظم الحاسب ، وحتى لا يحصل تعارض بين ما ينقل بين النظم المختلفة .
وفي فيجوال بيسك ، يقنص الحدث KeyPress الزر المضغوط من الكيبورد ويعطيه لك في متغير اسمه KeyAscii يحتوي على الرمز المقابل للزر المضغوط ، وذلك في كل الأدوات التي تحتوي على مثل هذا الحدث Event .
وسنستغل هذا الموضوع لتطبيق حقل لا يقبل إلا أرقاماً فقط - حقل العمر مثلاً - .
هنا سوف نعتمد على حدث Key_Press ، فعندما تكون الازرار المضغوطة أرقام فهذا يعطينا من 49 للصفر وحتى 58 للتسعة ، لذا سوف نتأكد من أن هذا المتغير يحتوي على قيمة بينهما ، وذلك بالشكل التالي :
وهي رموز تقابل الأحرف الهجائية والرموز والأرقام وغير ذلك ، فنجد أن 65 في Ascii تمثل حرف a و 66 تمثل b وذلك حتى z ، كما تبدأ الأحرف A من رقم 92 ، أما الأرقام فهي بين 49 للصفر و 58 للتسعة .
ويشكل هذا النظام أسلوب قياسي للترميز بين منتجي ومشغلي نظم الحاسب ، وحتى لا يحصل تعارض بين ما ينقل بين النظم المختلفة .
وفي فيجوال بيسك ، يقنص الحدث KeyPress الزر المضغوط من الكيبورد ويعطيه لك في متغير اسمه KeyAscii يحتوي على الرمز المقابل للزر المضغوط ، وذلك في كل الأدوات التي تحتوي على مثل هذا الحدث Event .
وسنستغل هذا الموضوع لتطبيق حقل لا يقبل إلا أرقاماً فقط - حقل العمر مثلاً - .
هنا سوف نعتمد على حدث Key_Press ، فعندما تكون الازرار المضغوطة أرقام فهذا يعطينا من 49 للصفر وحتى 58 للتسعة ، لذا سوف نتأكد من أن هذا المتغير يحتوي على قيمة بينهما ، وذلك بالشكل التالي :
كود :
If KeyAscii < 48 Or KeyAscii > 59 Then
في حالة تحقق هذا الشرط فهذا معناه ان الزر المضغوط ليس برقم لذا فينبغي اصدار صوت تحذيري عن طريق الأمر Beep .
الخطوة الثانية هي حذف آخر الحروف ادخالاً .
بذلك يصبح الكود :
الخطوة الثانية هي حذف آخر الحروف ادخالاً .
بذلك يصبح الكود :
كود :
If KeyAscii < 48 Or KeyAscii > 59 Then
Beep
KeyAscii = 0
End If
حيث أن 0 ترمز لـ NULL .
والآن لا تنس النقاط التالية :
* لا تنس أن بعض الحقول الرقمية لا بد أن تقبل الفاصلة .
* لا تنس أيضاً أن المستخدم قد يحتاج إلى لصق النص باستخدام
* لا تنس أيضاً أن المستخدم قد يحتاج إلى لصق النص باستخدام
Ctrl+V لكنك لن تمكنه من ذلك . وفي المقابل قد يكتب المستخدم نصاً يحتوي على حروف في مكان ما وينسخه ليقوم بلصقه من خلال القائمة في برنامجك ، ولن يستطيع برنامجك المسكين منعه مما يريد .
لحل المشكلة الأولى نستثني الرقم المقابل للفاصلة في Ascii ، ولكن لا تنس أنه ليس بالامكان اضافة أكثر من فاصلة .
لحل المشكلة الثانية قم باضافة حدث التأكد في الحدث Change والذي ينطلق في حالة تغير محتوى مربع النص .
والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .
لحل المشكلة الثانية قم باضافة حدث التأكد في الحدث Change والذي ينطلق في حالة تغير محتوى مربع النص .
والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .