delphi4arab منتديات دلفي للعرب
مشكلة في KeyPress - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مشكلة في KeyPress (/showthread.php?tid=7650)

الصفحات: 1 2


RE: مشكلة في KeyPress - محمد عبد العزيز - 27-03-2016

السلام عليكم
يمكن ان تعرف رقم الحرف الذي تود ادراجه بالمقارنة
أكتب بالحدث شيئ مثل

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

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

كود :
begin  if not (key in ['0'..'9', #8, #13 ,'.',#219]) then key := #0; end;



RE: مشكلة في KeyPress - elzawey2020 - 27-03-2016

اخي الغالي
جربت الكود وظهر لي الرقم 1594
ووضعته بالكود الاخر ولم يعمل
if not (key in ['0'..'9', #8, #13 ,'.',#1594]) then key := #0;


RE: مشكلة في KeyPress - محمد عبد العزيز - 27-03-2016

نعم
جهازي قديم 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;



RE: مشكلة في KeyPress - elzawey2020 - 27-03-2016

ووضعته بالكود الاخر ولم يعمل اخي
احسن حاجه
اضع حرف انجليزي بدلا من العربي ثم اغيره اخي باقاعده if
بارك الله فيك اخي


RE: مشكلة في KeyPress - PLANSHARP - 28-03-2016

جرب:
كود :
Uses WideStrUtils;  if not WideStrUtils.InOpArray(Key, [#8, #13, '.', 'غ', '0', '1', '2', '3',    '4', '5', '6', '7', '8', '9']) then    Key := #0;



RE: مشكلة في KeyPress - elzawey2020 - 28-03-2016

نفع معي الكود اخي
بارك الله فيك