编几个处理各种错误的子程序,在用循环调用各个子程序。
手头有一模块:我觉得这样挺方便的(Sgpo是一个stringgrid)
自己定义子程序:
{ Check date data valid }
function Tpurordermanafrmb.DateCheck(CellData: string; ACol,
ARow: integer): string;
begin
Result:='';
try
if CellData<>'' then strtodate(CellData)
except
Result:='第'+inttostr(ARow)+'行,第'+inttostr(ACol+1)+'列为无效时间';
end;
end;
{ Check float data valid }
function Tpurordermanafrmb.FloatCheck(CellData: string; ACol,
ARow: integer): string;
begin
Result:='';
try
if Trim(CellData)<>'' then strtofloat(CellData)
except
Result:='第'+inttostr(ARow)+'行,第'+inttostr(ACol+1)+'列为无效实数';
end;
end;
存档时调用:限制第2列为实数,第3列为时间:
var errorstring: string;
i: integer;
调用时
....
errorstring:='';
for i:=1 to SGPo.RowCount-1 do
ErrorString:=ErrorString+FloatCheck(SGPo.Cells[2,i],2,i)+
DateCheck(SGPo.Cells[3,i],3,i);
{ If Data is not valid , show error information }
if trim(ErrorString)<>'' then
ErrorString:='不能存档,因下列数据不合法:'+ErrorString;
........
哦,不好意思,错误理解你问题的意思了,既然写出来了就发上来吧,这是一个存档时检查
stringgrid的数据有效性的做法。