الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عدم استخدام اللصق في ال Edit

مغلق
بدأه format82 في 27 سبتمبر 2006 · 3 رد · 660 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد عدم كتابة حروف داخل ال Edit حيث قمت بكتابة هذا الكود

if not(key in['0'..'9',#8])then
begin
Key:=#0;
ShowMessage('الرجاء كتابة ارقام');
end;

في الحدث KeyPress حيث يعمل بطريقة صحيحة عند الكتابة من كيبورد (الضغط علي الكيبورد) 0 ولكن مشكلة تاتي عند نسخ حروف من مكان اخر ثم اللصق داخل الEdit (اريد عدم قبول الحروف نهائيا باي طريقة كان )

تم تعديل هذه المشاركة بواسطة romanof في 27 سبتمبر 2006 في 17:11

#2

أخي

لمنع اللصق

عادة اللصق يكون بالزر اليميني ثم لصق او ضغط ctrl+v

لمنع الزر اليميني

procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
Handled:= True;
end;

لمنع ctrl+v:

نضع متحول عام

VAR
  Paste: BOOL;

ثم

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Shift= [ssCtrl]) and (Key= ord('V')) then
  Paste:= false
  else Paste:= true;
end;

ثم

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not Paste then
	Key:= #0;
end;

تم تعديل هذه المشاركة بواسطة essam7 في 27 سبتمبر 2006 في 17:17

#3

شكرا جزيلا بارك الله فيك

#4

هناك طريقة ثانية اسهل :D لمنع ctrl+v:

هذا الكود يمنع ctrl+v, ctrl+c , ctrl+ x و لمنع ctrl + v لوحدها فقط ازل

^c,^x

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
	if not (key in ['0'..'9', #8 {backspace}])or (key in[^C {copy}, ^V {paste}, ^X {cut}]) Then
	  key:= #0;

end;

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

هذا الموضوع مغلق.

مواضيع مشابهة