Delphi Sayısal mı Kontrolü

isinteger_delphi

Delphi de diğer bazı dillerde olduğu gibi (isint() – isinteger() vb.) girilen bir değerin sayısal olup olmadığını kontrol eden bir fonksiyon bulunmamaktadır. Bunun için bu kontrolün yapılacağı fonksiyonu kendimiz yazmamız gerekir. Aşağıda yer alan iki fonksiyon da kendisine verilen string ifadenin sayısal olup olmadığını kontrol eder. İkinci fonksiyon biraz daha farklı çalışır, gelen ifadeyi direkt olarak integer tip değişkene dönüştürmeyi dener eğer sistem hata verirse geriye false döndürür ve hatayı yok sayarak çalışmaya devam eder ancak sistem hata vermezse geriye true döndürür ve çalışmaya devam eder.

{1.}

function IsStrANumber(const S: string): Boolean;
var
P: PChar;
begin
P := PChar(S);
Result := False;
while P^ <> #0 do
begin
if not (P^ in [‘0’..’9′]) then Exit;
Inc(P);
end;
Result := True;
end;

{2.}

function IsStrANumber(const S: string): Boolean;
begin
Result := True;
try
StrToInt(S);
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsStrANumber(edit1.Text) = True then
ShowMessage(‘Girilen ifade sadece sayısal ifadeler içeriyor!’);
end;



Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir