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

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



كيف استخدام Maskedit لكتابة التاريخ - الراشيد - 06-07-2017

السلام عليكم ورحمة الله
انا استخدم عادة Maskedit في ادخال التاريخ وذلك بعد تحديد صيغة التاريخ المراد ادخالها من المستخدم لكن المشكلة عندما لايتم كتاب التاريخ كامل وبمجرد الخروج منها تظهر رسالة خطا ما الحل لاتفادي المشكلة
editmask=00/00/0000
ولكم جزيل الشكر Huh


RE: Maskedit - ramiparadox - 16-07-2017

كود :
uses dateutils;  unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, Mask,dateutils; type   TForm1 = class(TForm)     MaskEdit1: TMaskEdit;     procedure MaskEdit1Change(Sender: TObject);     procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);   private     { Private declarations }   public     { Public declarations }   end; var   Form1: TForm1; implementation {$R *.dfm} Function DateIsValide(s:string):boolean; var a,m,j: string; aa,mm,jj:word; aaa,mmm,jjj:integer; valid:boolean; begin       a:=Copy(s,7,4);  if pos(' ',a)=0 then  aaa:=strtoint(a) else aaa:=0;       m:=Copy(s,4,2);  if pos(' ',m)=0 then  mmm:=strtoint(m) else mmm:=0;       j:=Copy(s,1,2);  if pos(' ',j)=0 then  jjj:=strtoint(j) else jjj:=0;       aa:=Integer(aaa);       mm:=Integer(mmm);       jj:=Integer(jjj);       if IsValidDate(aa,mm,jj) then valid:=true else valid:=false;       result :=valid; end; procedure TForm1.MaskEdit1Change(Sender: TObject); begin if (MaskEdit1.Text<>'  /  /    ')  and (MaskEdit1.SelStart=10) then if DateIsValide(MaskEdit1.Text)   then ShowMessage(MaskEdit1.Text+ '--->'+'Date Correcte') else  ShowMessage(MaskEdit1.Text+ '---> '+'Date Incorrecte') ; end; procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in [#8,#13,'0'..'9']) then Key:=#0; end; procedure TForm1.FormCreate(Sender: TObject); begin MaskEdit1.EditMask:='!##/##/####;1;_'; end; end.