![]() |
|
منع المكون TEdit قبول الحروف! - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13) +--- الموضوع : منع المكون TEdit قبول الحروف! (/showthread.php?tid=9) |
منع المكون TEdit قبول الحروف! - hanipino - 29-12-2009 لجعل الكتابة تتوصطها |--> (ES_CENTER) PHP كود : procedure TForm1.btn1Click(Sender: TObject);لجعلها تقبل الارقام فقط (الارقام دون فاصلة ... ?) |--> (ES_NUMBER) PHP كود : procedure TForm1.btn1Click(Sender: TObject);لمزج كلى الحالتين |--> (ES_NUMBER or ES_CENTER) PHP كود : procedure TForm1.btn1Click(Sender: TObject);منع المكون TEdit قبول الحروف! - sachaigor - 06-02-2010 شكرا لك على الموضوع سؤال هل نطبق نفس الطريقة على DBEdit منع المكون TEdit قبول الحروف! - AL-MOB4RM3G - 06-02-2010 إقتباس :سؤال اخي الكريم, ال DBEdit يستخدم لجلب البيانات من قآعدة البيانات, لذلك يمكنك استخدام مثلا ال TEdit عادي قبل تخزين المعلومة في القآعدة وبعدها تجلب المعلومة من القآعدة بستخدام ال DBEdit بدون مشآكل ان شاء الله, بالتوفيق, منع المكون TEdit قبول الحروف! - unusual - 07-03-2011 delphi4ever كتب : السلام عليك يا أخي حسب خبرتي البسيطة أظن ان في الكود الذي يطبع الأحرف ولا يطبع الأرقام فيه خلل مع #8 حيث يجب عدم وضعها في هذا الكود لكي يقبل الحذف وشكرا منع المكون TEdit قبول الحروف! - syscall - 07-03-2011 السؤال الذي يطرح نفسه ماذا لو كان المستخدم اذكى من المبرمج ونسخ قيمة رقمية الى حافظة الويندوز ثم لصقها في هذا العنصر طبعا لن تعمل الشيفرة لذلك هل من حل ؟ منع المكون TEdit قبول الحروف! - kachwahed - 07-03-2011 إقتباس :لذلك هل من حل ؟لكل مشكل حل في هذه الحالة عليك باقتناص أثر الحدث WM_COPY كود : procedure WMCopy(var Message: TMessage); message WM_COPY;مقالات ومواضيع في المنتدى كثيرة حول رسائل الأحداث في Windows استخدم البحث... منع المكون TEdit قبول الحروف! - syscall - 07-03-2011 اخي العزيز kachwahed اعلم ان هناك حل ولدي الحل بطريقتي الخاصة وبدون استخدام رسائل الاحداث لكن اردت ان اعرف بعض التجارب الاخرى لدى الشباب حتى لااطيل عليكم اليكم الحل طبعا في هذا المثال يمكن ادخال قيمة رقمية ولكن من المستحيل ادخال قيمة حرفية كود : procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, DecimalSeparator]) then
begin
Key := #0;
Beep;
end;
end;
function isNum(Value: String): Boolean;
var
X: Integer;
begin
Result:=Value <> '';
IF Result Then
For X:=1 To Length(Value) Do
Case Value[X] OF
'0'..'9':;
Else
Result:=False;
Break;
End;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
edit: TEdit;
begin
edit:=TEdit(sender);
if isNum(edit.text) then
edit.ClearUndo
else
begin
edit.OnChange:=nil;
edit.Undo;
edit.OnChange:=Edit1Change;
edit.ClearUndo;
edit.SelectAll;
end;
end;منع المكون TEdit قبول الحروف! - syscall - 07-03-2011 الشيفرة السابقة تحتاج الى تعديل اليكم التعديل الجديد كود : procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, DecimalSeparator]) then
begin
Key := #0;
Beep;
end;
end;
function isNum(Value: String): Boolean;
var
X: Integer;
begin
Result:=Value <> '';
IF Result Then
For X:=1 To Length(Value) Do
Case Value[X] OF
'0'..'9':;
Else
Result:=False;
Break;
End;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
edit: TEdit;
begin
edit:=TEdit(sender);
if edit.Text <> '' then
if not isNum(edit.text) then
begin
edit.OnChange:=nil;
edit.Undo;
edit.OnChange:=Edit1Change;
edit.SelectAll;
end;
edit.ClearUndo
end;منع المكون TEdit قبول الحروف! - kachwahed - 07-03-2011 استخدم الوسم code لتبدو الأكواد أوضح مثال بطريقة أخرى من خلال قراءة محتوى Clipboard PHP كود : usesينقصه منع Shift+Insert وأمثالها وبعض الفحوصات... منع المكون TEdit قبول الحروف! - لمير - 03-09-2015 [dcc32 Erreur] Unit2.pas(29): E2003 Identificateur non déclaré : 'DecimalSeparator' |