المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
السلام عليكم
يمكن ان تعرف رقم الحرف الذي تود ادراجه بالمقارنة
أكتب بالحدث شيئ مثل
كود :
ShowMessage(IntToStr(Ord(key)));
نفذ وجرب الضغط على الحرف الذي تشاء مثلا "غ" يظهر 219
ومنه يمكن تعديل الكود ووضع #219 بدلا من الحرف 'غ'
الكود الأول يصبح
كود :
begin
if not (key in ['0'..'9', #8, #13 ,'.',#219]) then key := #0;
end;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 131
المواضيع 52
:
: 3
الإنتساب : Jan 2016
اخي الغالي
جربت الكود وظهر لي الرقم 1594
ووضعته بالكود الاخر ولم يعمل
if not (key in ['0'..'9', #8, #13 ,'.',#1594]) then key := #0;
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
27-03-2016, 04:21 PM
(آخر تعديل لهذه المشاركة: 27-03-2016, 04:23 PM بواسطة محمد عبد العزيز.)
نعم
جهازي قديم Win XP ودلفي 5 الكود الذي كتبته فوق صحيح عندي ان الChar هي من نوع AnsiChar وبالتالي قيمة حرف "غ" هي 219
جهازك احدث والاهم نسخة دلفي التي تستخدم 2009 وما فوق وبها الChar هي من نوع WideChar وبالتالي قيمة حرف "غ" هي 1594
في حالة WideChar الكود السابق لن ينفع لان جزء من المعلومة ضاع، انظر جيدا الWarning بعد Compile
هل جربت الكود السابق
كود :
if not CharInSet(Key, ['0'..'9', #8, #13 ,'.',#1594]) then
Key := #0;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 131
المواضيع 52
:
: 3
الإنتساب : Jan 2016
ووضعته بالكود الاخر ولم يعمل اخي
احسن حاجه
اضع حرف انجليزي بدلا من العربي ثم اغيره اخي باقاعده if
بارك الله فيك اخي
المشاركات : 138
المواضيع 1
:
: 4
الإنتساب : Feb 2016
جرب:
كود :
Uses WideStrUtils;
if not WideStrUtils.InOpArray(Key, [#8, #13, '.', 'غ', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9']) then
Key := #0;
المشاركات : 131
المواضيع 52
:
: 3
الإنتساب : Jan 2016
نفع معي الكود اخي
بارك الله فيك