المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : منع المستخدم من أدخال حروف أو أرقام ضمن edit


abo-ghadab
14-03-2010, 10:44 PM
السلام عليكم ورحمة الله وبركاته
--------------------
http://store1.up-00.com/Mar10/jpV98638.jpg
1 : لوضع مؤشر الكتابة في Edit1 عند فتح الفورم
نضع الكود التالي في FormShow

edit1.SetFocus;

2 : عندما أريـد منع المستخدم من إدخال أرقام في edit
نضع الكود التالي في حدث onkeyPress لعنصر edit2

if Key = #13 then
begin
Key := #0;
end;
if (key in ['0'..'9', '-', '_', '=', '\', '|', '/', '*', '-', '+', '.', #13]) then
key := #0;


3 : عندما أريـد منع مستخدم البرنامج من أدخال أحرف في edit
نضع الكود التالي في حدث onkeyPress لعنصر edit3

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


ملاحظة : حبيت أضيف معلومة واذا يوجد نقد فـأرجـو التعليق

nabilkeb
15-03-2010, 05:51 PM
السلام عليكم أخي
في بادئ الأمر حسبته سؤالا ، لكنك أخي قدمت لنا معلومات حول إتاحة أو منع إدخال حروف أو رموز أو أرقام ، طيب :
ما فائدة أو لزوم كتابة هذا الكود؟

if Key = #13 then
begin
Key := #0;
end;

kachwahed
15-03-2010, 06:38 PM
وعليكم السلام ورحمة الله وبركاته
ما فائدة أو لزوم كتابة هذا الكود؟
هذا يستخدمه البعض لإيقاف الـ Beep المزعج الذي يصدره W!nd0ws

abo-ghadab
16-03-2010, 03:22 PM
السلام عليكم ورحمة الله وبركاته

لقد سبقني بجواب الأخ kachwahed

أخي نبيل عندما أمنع المستخدم من كتابة الأحرف مثلا ً في عنصر ال edit3
دون هذا الكود


if Key = #13 then
begin
Key := #0;
end;


سوف يظهر صوت خظأ beep عند الإدخال الأحرف

والسلام

nabilkeb
16-03-2010, 06:35 PM
نعم يا أصدقاء ، أعرف ذلك ، لكنني قصدت عدم الحاجة إليه أصلا لأنني لم أنتبه هنــا :


if Key = #13 then
begin
Key := #0;
end;
if not (key in ['0'..'9', #8, #13]) then
key := #0;
هنــا يوجد شرطين يحتوي كلاهما على زر الإدخــال (Enter) (#13) ، ضننت أن هناك تكرار في ذكره ، وعليه يمكن الإستغناء عن الشرط الأول ، لكنني كنت مخطئ يعني سواء تم ضغط زر انتر أو لا فإن :
Key:=#0

بالتوفيق .

AL-MOB4RM3G
18-03-2010, 09:31 PM
هذا يستخدمه البعض لإيقاف الـ Beep المزعج الذي يصدره W!nd0ws

هممم, برأيّي ان صوت ال Beep ممتع
لأنه ينبه المستخدم على خلل ما, :crazy:

بارك الله لكم اخي الكريم ابو غضب,
بالتوفيق,

وليد
25-03-2011, 07:57 PM
السلام عليكم
للإضافة فقط أنا أستعمل دلفي 2010 وفيه خاصية منع كتابة الحروف وأن لايقبل إلا الأرقام في edit ولا أدري إن كانت في غيره من النسخ السابقة موجودة أم لا وذلك من خلال تعيين الـ edit ثم تغيير الخصية numbersonly إلى true. وبهذا تستغني عن كتابة الكود.
بالتوفيق.

kachwahed
26-03-2011, 05:30 PM
ولا أدري إن كانت في غيره من النسخ السابقة موجودة أم لا
كلا، في الإصدارات السابقة يمكن استخدام api تؤدي ذلك (موجود مثال في المنتدى)

المحجوب
18-11-2011, 03:38 AM
نعم هذا فقط ينطبق على الادخال اليدوي

كيف يمكن منع ذلك عن طريق
Paste من الجهاز مباشرة راح يقبل الادخال

انا استخدم اللقص الالي عبر التايمر Edit1.PasteFromClipboard;
في مشروعي كيف امنع ذلك


مرفق محاولة ....

kachwahed
18-11-2011, 07:14 PM
هناك أكثر من طريقة لمنع ذلك أبسطها منع المفاتيح Ctrl+v
http://delphi.about.com/od/delphitips2007/qt/disable_ctrl_v.htm
ﻻ تنسى أيضا Shift+Insert التي من زمان... :)