davoodmz
یک شنبه 21 خرداد 1385, 09:52 صبح
با سلام
آقا بابک لطف کردن و کدی را برای کنترل وارد کردن تاریخ با ماسک ادیت گذاشتنه اند که کار خودشان می باشد و بسیار به در می خورد. که من با اجازه کدش را می گذارم و از ایشان یا از دوستان خواهش دارم تکمیلش کنند.
سوال این که اگر 3 یا 4 dbedit از نوع تاریخ در فرم باشد و کنترلشان کنیم با تعریف متغییرها(3 یا 4 بار پیغام می دهد) و می خواهیم یک بار برای همه آنها پیغام دهد که تاریخ صحیح است یا نه .
سوال بعد اینکه فقط ماه و روز و سال را چک کند و خالی بودن را چک نکند .
لطفاً کدش را اصلاح کنید و در اینجا قرار دهید.
Function mask_tarikh(str:string):boolean;
var
b:boolean;
x:integer;
s:string;
begin
b:=true;
if b and (str=' / / ') then
begin
b:=false;
ShowMessage('ÊÇÑíÎ ãÔÎÕ äÔÏå ÇÓÊ');
end;
x:=pos(' ',str );
if b then
if x>0 then
begin
b:=false;
showmessage('ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
end;
if b then
begin
s:=str;
s:=copy(s,6,2);
x:=strtoint(s);
if (x >12) or (x<1) then
begin
ShowMessage('ãÇå ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
b:=false;
end;
if x>6 then
begin
s:=str;
s:=copy(s,9,2);
x:=strtoint(s);
if (x>30) or (x<1) then
begin
ShowMessage('ÑæÒ ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
b:=false;
end;
end;
if b then
begin
s:=str;
s:=copy(s,9,2);
x:=strtoint(s);
if (x >31) or (x<1) then
begin
b:=false;
ShowMessage('ÑæÒ ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
end;
end;
end;
mask_tarikh:=b;
end;
و در رویداد Onexit یا ...
var b1:Boolean;
begin
b1:=mask_tarikh(maskedit1.Text );
اگر در اینجا چند متغییر تعریف کنیم چندین پیغام ظاهر می شود.
if b1=false then maskedit1.SetFocus
else MaskEdit2.SetFocus;
end;
با تشکر از همه دوستان
داود
آقا بابک لطف کردن و کدی را برای کنترل وارد کردن تاریخ با ماسک ادیت گذاشتنه اند که کار خودشان می باشد و بسیار به در می خورد. که من با اجازه کدش را می گذارم و از ایشان یا از دوستان خواهش دارم تکمیلش کنند.
سوال این که اگر 3 یا 4 dbedit از نوع تاریخ در فرم باشد و کنترلشان کنیم با تعریف متغییرها(3 یا 4 بار پیغام می دهد) و می خواهیم یک بار برای همه آنها پیغام دهد که تاریخ صحیح است یا نه .
سوال بعد اینکه فقط ماه و روز و سال را چک کند و خالی بودن را چک نکند .
لطفاً کدش را اصلاح کنید و در اینجا قرار دهید.
Function mask_tarikh(str:string):boolean;
var
b:boolean;
x:integer;
s:string;
begin
b:=true;
if b and (str=' / / ') then
begin
b:=false;
ShowMessage('ÊÇÑíÎ ãÔÎÕ äÔÏå ÇÓÊ');
end;
x:=pos(' ',str );
if b then
if x>0 then
begin
b:=false;
showmessage('ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
end;
if b then
begin
s:=str;
s:=copy(s,6,2);
x:=strtoint(s);
if (x >12) or (x<1) then
begin
ShowMessage('ãÇå ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
b:=false;
end;
if x>6 then
begin
s:=str;
s:=copy(s,9,2);
x:=strtoint(s);
if (x>30) or (x<1) then
begin
ShowMessage('ÑæÒ ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
b:=false;
end;
end;
if b then
begin
s:=str;
s:=copy(s,9,2);
x:=strtoint(s);
if (x >31) or (x<1) then
begin
b:=false;
ShowMessage('ÑæÒ ÊÇÑíÎ ÕÍíÍ äãí ÈÇÔÏ');
end;
end;
end;
mask_tarikh:=b;
end;
و در رویداد Onexit یا ...
var b1:Boolean;
begin
b1:=mask_tarikh(maskedit1.Text );
اگر در اینجا چند متغییر تعریف کنیم چندین پیغام ظاهر می شود.
if b1=false then maskedit1.SetFocus
else MaskEdit2.SetFocus;
end;
با تشکر از همه دوستان
داود