المشاركات : 5
المواضيع 2
:
: 1
الإنتساب : Jan 2016
06-07-2017, 09:10 AM
(آخر تعديل لهذه المشاركة: 18-07-2017, 08:23 AM بواسطة محمد عبد العزيز.)
السلام عليكم ورحمة الله
انا استخدم عادة Maskedit في ادخال التاريخ وذلك بعد تحديد صيغة التاريخ المراد ادخالها من المستخدم لكن المشكلة عندما لايتم كتاب التاريخ كامل وبمجرد الخروج منها تظهر رسالة خطا ما الحل لاتفادي المشكلة
editmask=00/00/0000
ولكم جزيل الشكر
المشاركات : 26
المواضيع 8
:
: 0
الإنتساب : Oct 2015
16-07-2017, 04:58 PM
(آخر تعديل لهذه المشاركة: 17-07-2017, 08:45 AM بواسطة Admin.)
كود :
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.