我的代码基本上跟你的一摸一样,但抛出异常。而且判断正确。
难道,你那边,异常不抛出???
我觉得你应该也抛出异常,只是判断不对。你的结果肯定错
程序应如下改。
function TfrmInput.IsNumber(txt:string):boolean;
var
ftData:single;
begin
Result:=true;/////result:=False;
try
StrToFloat(txt);////在这后面加上result:=True;
//因为如果异常,result:=true为执行,所以,返回为false,而你那样,
异常是抛出了,但结果总为true.
except
on  EConvertError do ShowMessage('Wrong Input');
end;
end;procedure TfrmInput.BitBtn1Click(Sender: TObject);
var
re:boolean;
begin
re:=IsNumber(frmInput.txtM.Text);
if re then
        showmessage('This text is a number')
        else
        showmessage('This text isn''t a number');
end;