delphi4arab منتديات دلفي للعرب

نسخة كاملة : Control_ MaskEdit
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام ع:

في جدول حقل مفتاحي مفرد عبارة عن حقل رقمي يتكون من 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 على حدى ليتم تجريب ما إذا كان رقما أو لا ؟

أو هل من حل آخر ؟
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;
السلام عليكم
استخدم TryStrToInt
مثال بنفس الطريقة مع تأريخ:
كود :
function IsDate(ADate: string): Boolean; var Dummy: TDateTime; begin Result := TryStrToDate(ADate, Dummy); end;

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