delphi4arab منتديات دلفي للعرب

نسخة كاملة : مشكلة في KeyPress
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
يمكن ان تعرف رقم الحرف الذي تود ادراجه بالمقارنة
أكتب بالحدث شيئ مثل

كود :
ShowMessage(IntToStr(Ord(key)));

نفذ وجرب الضغط على الحرف الذي تشاء مثلا "غ" يظهر 219
ومنه يمكن تعديل الكود ووضع #219 بدلا من الحرف 'غ'
الكود الأول يصبح

كود :
begin  if not (key in ['0'..'9', #8, #13 ,'.',#219]) then key := #0; end;
اخي الغالي
جربت الكود وظهر لي الرقم 1594
ووضعته بالكود الاخر ولم يعمل
if not (key in ['0'..'9', #8, #13 ,'.',#1594]) then key := #0;
نعم
جهازي قديم 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;
ووضعته بالكود الاخر ولم يعمل اخي
احسن حاجه
اضع حرف انجليزي بدلا من العربي ثم اغيره اخي باقاعده if
بارك الله فيك اخي
جرب:
كود :
Uses WideStrUtils;  if not WideStrUtils.InOpArray(Key, [#8, #13, '.', 'غ', '0', '1', '2', '3',    '4', '5', '6', '7', '8', '9']) then    Key := #0;
نفع معي الكود اخي
بارك الله فيك
الصفحات : 1 2