سلام
دو مورد هست که همیشه باید هنگام ورود دادهها به بانک چک بشن : 1-اعداد 2- فرم مورد نظر تاریخ
برای اعداد من کد زیر رو پیشنهاد می کنم .
procedure Tinput2.Edit10KeyPress(Sender: TObject; var Key: Char);
var assci:byte;
begin
assci:=ord(key);
if not((assci=48)or (assci=49)or (assci=50)or (assci=51)or (assci=52)or
(assci=53)or (assci=54)or (assci=55)or (assci=56)or (assci=57)
or (assci=11)or (assci=13)or (assci=32)or(assci=8)or(assci= 9 )) then
begin
messagedlg(' لطفا" فقط عدد وارد کنید ! ',mterror,[mbok],0);
key:=char(9);
end;
if key=char(13) then
begin
if edit10.Text='' then
begin
showmessage('طبقه را وارد کنید');
end
else
begin
edit11.SetFocus;
end;
end;
end;
فرض کنید در edit10 باید حتما یک عدد وارد شود.در صورت ورود یک عدد و enter زدن مکان نما به edit11 می رود.
برای تاریخ هم بسته به چگونگی تعریف تاریخ می شود کد نوشت .
البته توصیه من اینست که به هیچ وجه از توابع تبدیل تاریخ datetostr , strtodate استفاده نکنیم .
در واقع فیلد date در بانک نداشته باشید .
به طور مثال تاریخ رو بصورت 82/03/19 که گرفتید بصورت 820319 ذخیره کنید . البته این برای تاریخ هایی باشه که قراره سرچ و مقایسه روش انجام بشه . وگرنه اون رو هم text بگیریم فرقی نداره .
برای چک کردن ورود تاریخ نیز راه ساده همون استفاده از maskedit و استفاده از کد بالا با کمی تغییر .
قبل از post کردن هم باید از درست بودن ورودی ها اطمینان داشت.
امیــــــــد