19-11-2020, 07:16 PM
20-11-2020, 05:43 PM
كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// #8 is Backspace
if not (Key in [#8, '0'..'9']) then begin
ShowMessage('Invalid key');
// Discard the key
Key := #0;
end;
end;20-11-2020, 06:16 PM
وعليك السلام
في خصائص الاحداث لـ edit في KeyPress
في خصائص الاحداث لـ edit في KeyPress
كود :
Case Key of
'0'..'9',#8,#13 :
else
key:=#0;
end;20-11-2020, 06:24 PM
اشكركم لكن النص موجود ضمن string وليس ضمن Edit
20-11-2020, 07:57 PM
(20-11-2020, 06:24 PM)محمودد كتب : [ -> ]اشكركم لكن النص موجود ضمن string وليس ضمن Edit
سنكتب function نسميها IsValidNumber ترجع لنا قيمة منطقية صح أو خطأ ، بها يمكن التحقق إذا كانت القيمة تحتوي على نص أو أرقام و بعده تحقق أخر إذا كان محصور بين 0 و 15
كود :
function IsValidNumber(s:String):Boolean;
var
iValue, iCode: Integer;
begin
val(s, iValue, iCode);
if iCode = 0 then begin
if (strTOint(s) <= 15) and (strTOint(s) >= 0) then
result := true
else
result := false
end else
result := false;
end;مثال إستدعاء الدالة بوضع قيمة في edit ، يمكن تغيير edit بمتغير أخر
كود :
if IsValidNumber(edit1.Text) = false then
ShowMessage('contains String! or values not between 0 and 15 ')
else
ShowMessage('ok');[attachment=4394]
21-11-2020, 03:35 PM
إذا كنت تستخدم نسخة XE أو أحدث, يمكنك إستعمال الانماط التعبيرية أو Regular Expressions للتحقق من نمط معين تريده أن يكون في string.
في uses أضف:
بعدها:
في النمط, ^ تعني بداية النص, ما داخل القوسين للاختيار بين شرطين وهما [1-9] وهو يتحقق من أي رقم بين 1 و 9, ثم 10 إذا لم يتحقق الشرط الأول, ثم $ وتعني نهاية السترينغ أي يجب أن تكون بدايته ونهايته أرقاما بين 1 و 10.
الانماط التعبيرية جيدة جدا أنصحك بتعلمها.
في uses أضف:
PHP كود :
System.RegularExpressions
بعدها:
PHP كود :
// str هو السترينغ الذي تريد التحقق منه
if TRegEx.IsMatch(str, '^([1-9]|10)$') then
// string is a number between 1 and 10
else
// do something else
في النمط, ^ تعني بداية النص, ما داخل القوسين للاختيار بين شرطين وهما [1-9] وهو يتحقق من أي رقم بين 1 و 9, ثم 10 إذا لم يتحقق الشرط الأول, ثم $ وتعني نهاية السترينغ أي يجب أن تكون بدايته ونهايته أرقاما بين 1 و 10.
الانماط التعبيرية جيدة جدا أنصحك بتعلمها.
21-11-2020, 03:54 PM
(21-11-2020, 03:35 PM)sofiane201 كتب : [ -> ]إذا كنت تستخدم نسخة XE أو أحدث, يمكنك إستعمال الانماط التعبيرية أو Regular Expressions للتحقق من نمط معين تريده أن يكون في string.
في uses أضف:
PHP كود :System.RegularExpressions
بعدها:
PHP كود :// str هو السترينغ الذي تريد التحقق منه
if TRegEx.IsMatch(str, '^([1-9]|10)$') then
// string is a number between 1 and 10
else
// do something else
في النمط, ^ تعني بداية النص, ما داخل القوسين للاختيار بين شرطين وهما [1-9] وهو يتحقق من أي رقم بين 1 و 9, ثم 10 إذا لم يتحقق الشرط الأول, ثم $ وتعني نهاية السترينغ أي يجب أن تكون بدايته ونهايته أرقاما بين 1 و 10.
الانماط التعبيرية جيدة جدا أنصحك بتعلمها.
بالنسبة لي الحل الانسب ، يبقى شيء واحد تصيغها حسب برنامجك
21-11-2020, 04:10 PM
بارك الله بكم