不会吧你在Except后面加一个Showmessage,把Onxxx注释一下,看看行不行
function chk_date_valid(str:string):boolean;
begin
try
result:=true;
StrToDateTime(str);
except
showmessage('Date Error');
result:=false;
end;
end;
function chk_date_valid(str:string):boolean;
begin
try
result:=true;
StrToDateTime(str);
except
showmessage('Date Error');
result:=false;
end;
end;
解决方案 »
- 标准表达式中数据类型不匹配!!!急
- 我把编译生成的dll文件放在web服务器指定的目录,然后输入localhost/web/Tableex.dll/TestTable 按回车,为什么没有出来结果?
- 如何修改Rave的源码,RvData.pas的function CreateFieldName(DataViewName: string;函数?谢谢
- 求助关于线程的创建和调用的基本问题,刚接触线程不是很懂,谢谢大家
- 界面设计的重大问题。求助!重金!!!
- 记录复制问题
- 请教个查询统计问题
- 我作了一個數據庫查詢語句﹐但是運行後出現這種錯誤‘Invalid use of Keyword.Token Date',請問如何解決﹖
- 如何得到qq密码框的句柄?
- Delphi中win2k与win98窗口的问题,答者有分!!
- Delphi的高手请留步
- midas是什么的缩写?
如何自动获取错误的代码及错误代码信息?就VB一样智能型的
在VB中只需要用它的ERR对象就能自动识别你程序错的原因(如:err.code就能获取错误的代码)
var
Pos: Integer;
Date, Time: TDateTime;
begin
Pos := 1;
Time := 0;
if not ScanDate(S, Pos, Date) or not ((Pos > Length(S)) or
ScanTime(S, Pos, Time)) then
begin // Try time only
Pos := 1;
if not ScanTime(S, Pos, Result) or (Pos <= Length(S)) then
ConvertErrorFmt(@SInvalidDateTime, [S]);
end else
if Date >= 0 then
Result := Date + Time else
Result := Date - Time;
end;
你可以直接使用scanDate, scantime检查
可以找到Stop on Delphi Exception的选项,把它去掉就可以了
begin
//利用函数转换的错误捕捉来处理...
if DateEdit1.Text<>'' then
begin
try
StrToDate(DateEdit1.Text);//转换
except
DateEdit1.SetFocus;
MessageBeep(0);
raise Exception.Create('"'+DateEdit1.Text+'" 不是正确的日期格式!');
end{try};
DateEdit1.Text:=DateToStr(StrToDate(DateEdit1.Text));
end{if};
end;
//...
except
On ECE: EConvertError do
ShowMessage(ECE.ClassName+': '+ECE.Message);
On EWE: EWin32Error do
ShowMessageFmt('%s[%d]: %s',[EWE.ClassName,EWE.ErrorCode,ECE.Message);
end;