ورود

View Full Version : کنترل dateبا ماسک ادیت



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('&#227;&#199;&#229; &#202;&#199;&#209;&#237;&#206; &#213;&#205;&#237;&#205; &#228;&#227;&#237; &#200;&#199;&#212;&#207;');
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('&#209;&#230;&#210; &#202;&#199;&#209;&#237;&#206; &#213;&#205;&#237;&#205; &#228;&#227;&#237; &#200;&#199;&#212;&#207;');
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('&#209;&#230;&#210; &#202;&#199;&#209;&#237;&#206; &#213;&#205;&#237;&#205; &#228;&#227;&#237; &#200;&#199;&#212;&#207;');
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;

با تشکر از همه دوستان
داود

babak869
یک شنبه 21 خرداد 1385, 09:56 صبح
اینم لینک سورس کامل و مثال برنامه.ممنون از توجه شما دوست عزیز
خوشحال میشم که کدها و نمونه های من و دوستان تکمیل و اشکال زدایی بشه
موفق باشید

http://www.barnamenevis.org/forum/showthread.php?t=46347&page=2

davoodmz
یک شنبه 21 خرداد 1385, 10:19 صبح
با سلام
بابک جان
من همه اینها را دیدم فقط اگر لطف کنید و سوال های مرا جواب دهید ممنون می شوم
با تشکر
داود

davoodmz
دوشنبه 22 خرداد 1385, 07:24 صبح
آقا بابک من می خواهم که سه یا چهار یا بیشتر دی بی ادیت را با این کد کنترل کنم و یک پروسجر برای همه آنها در فرم اصلی dm خود داشته باشم و در همه فرمها تاریخها با این کد کنترل شود و یک بار پیغام دهد و سوال بعد اینکه تاریخ را خالی هم رد کند
با تشکر
داود