Jeg kender ikke til at der findes en så funktion i Delphi men du kan lave en selv :
function IsNumeric(v : Variant) : Boolean; var i : Integer; s : String; begin i:= VarType(V) and varTypeMask; result := (i >= varSmallint) and (i<=varCurrency);
if not result then result := i= varByte;
if not result then begin if i= varString then s:=v; result := true; try StrToFloat(s); except result := false; end; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsNumeric(\'5,444\') then Caption := \'\'; end;
Borrisholt>> den virker skam til de fleste formål, der hvor jeg har haft brug for den er i forb. med strings og der er alt det du laver slet ikke nødvendigt .. man kalder den bare
if isNum(stringvar)= true then //dosomething else //dosomethingelse;
og hvis du ikke kalder den med en stringværdi men derimod med en talværdi som Input er det så ikke logisk at den er nummerisk ?
DJ> Så langt har du ret .... jeg læste spørgsnålet sådan at spørger vil have en Delphi pendant til VB\'s Isnumeric(), til det kan man kun bruge en variant ....
Anyway skal man bare teste om en strens er en heltals værdi så vil jeg også gøre noget i retning af det du anviser :-)
//et 7 år for sent alternativ *s* //- hvis det er ligemeget med punktum'et
function isNumeric(theStr:string):boolean; var i:integer;ch:byte; begin result:=true;i:=0; if theStr='' then result:=false else while i<length(theStr) do begin i:=i+1;ch:=ord(theStr[i]); if (ch<48) or (ch>57) then begin result:=false;exit;end; end; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.