delphi4arab منتديات دلفي للعرب
Control_ MaskEdit - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : Control_ MaskEdit (/showthread.php?tid=3727)



Control_ MaskEdit - nabilkeb - 26-12-2011

السلام ع:

في جدول حقل مفتاحي مفرد عبارة عن حقل رقمي يتكون من 8 أرقام يفصل بنقطة بين الثلاثة الأولى و الخمسة أرقام المتبقية .
كيف السبيل لتجاوز الخطأ أو على الأحسن عرض رسالة البرنامج الخاصة للمستخدم ، إذا ما تم إدخال فراغ بين الأرقام. علما أن الماسك يعد خروج المأشر يسمح بذلك ، أما الخطأ فيرد من جدول البيانات مفاده أن القيمة المدخلة ( مثلا: 3_454.888) ليست عددا صحيحا.

- نفس الشئ بالنسبة لحقل خاص بالتاريخ ، هذا الإشكال تم تجاوزه :
كود :
if sDateEdit1.text<>' '+dateSeparator+' '+dateSeparator+' ' then begin if strtodatedef(sDateEdit1.text, -1) = -1 then begin // raise exception.create('….Msg…. !'); MessageDlg('.............. ' , MtError,[MbYes],0); sDateEdit1.SetFocus; end; end;
- باختصار لديا فكرة لم أستطع تجسيدها: كيف يتم استخراج كل رقم أو حرف محرر في MaskEdit على حدى ليتم تجريب ما إذا كان رقما أو لا ؟

أو هل من حل آخر ؟



Control_ MaskEdit - S.M.Abdelhak - 26-12-2011

nabilkeb كتب :
كيف يتم استخراج كل رقم أو حرف محرر في MaskEdit على حدى ليتم تجريب ما إذا كان رقما أو لا ؟

جرب
كود :
function _number(Text: string): Boolean; var i: Integer; begin Result := True; for i := 1 to Length(Text) do begin if not(Text[i] in ['0'..'9']) then begin Result := False; Exit; end; end; end;



Control_ MaskEdit - kachwahed - 27-12-2011

السلام عليكم
استخدم TryStrToInt
مثال بنفس الطريقة مع تأريخ:
كود :
function IsDate(ADate: string): Boolean; var Dummy: TDateTime; begin Result := TryStrToDate(ADate, Dummy); end;

إن كان الأمر متعلق بحقل من جدول فهناك دالة جاهزة:
كود :
if YourField.IsValidChar(YourEdit.Text[1]) then
بالتوفيق.