السلام عليكم...
أولاً العلامة الرقمية # يتبعها عدد هي طريقة دلفي لكتابة الرموز باستعمال أرقامها في جدول آسكي (ASCII Table). و هي مفيدة خاصةً في التعبير عن الرموز غير المكتوبة (غير القابلة للكتابة أو ما يسمى برموز التحكم - Control characters، و هي الرموز التي تحتل الأرقام من 0 إلى 31 في جدول آسكي) مثل:
كود :
#8 = BackSpace
#9 = Tab
#13#10 = Enter
و يمكن أيضاً استعمالها لكتابة سلاسل نصية (String). مثلاً:
كود :
Label1.Caption := #65#108#105; // => Ali (#65 = A, #108 = l, #105 = i)
ثانياً بالنسبة إلى الكود المطلوب، استعمل الطريقة التالية حيث يمكنك وضع أية رموز تريد استثناءها (السماح بكتابتها) الكود يوضع طبعاً في الحدث OnKeyPress للمكون TEdit أو ما يشبهه:
كود :
if Key > #31 then begin
if not (Key in ['a'..'z', 'A'..'Z', '0'..'9', ' ']) then
Key := #0;
end;
الكود السابق يسمح بكتابة الحروف اللاتينية من a إلى z (صغيرة أو كبيرة) و الأرقام و الفراغ (لاحظ أن علامتي التنصيص أو الاقتباس الأخيرتين تحتويان بينهما فراغا و ليستا ملتصقتين).
لاحظ أن جملة if الأولى ستستثني رموز التحكم (التي أرقامها من 0 إلى 31) أي أنها ستسمح بمفتاح المسح الخلفي (BackSpace) و مفتاح الحذف (Delete) و مفتاح الإدخال (Enter) و مفتاح الجدولة (Tab) و غيرها.
أخيراً، إذا أردت السماح بكتابة علامة التنصيص أو الاقتباس الفردية ( ' ) فإنه يجب مضاعفتها لأنها تستعمل لحصر الرموز، أو أن تستعمل رقمها في جدول آسكي:
كود :
''' // خطأ
'''' // صحيح
#39 // صحيح
كود :
if Key > #31 then begin
if not (Key in ['a'..'z', 'A'..'Z', '0'..'9', ' ', #39]) then
Key := #0;
end;
* للحصول على جدول ASCII ابحث في Google و ستجد آلاف النتائج.
نرجو الاستفادة و السلام.