18-09-2019, Saat: 13:20
merhaba arkadaşlar.
inputquery yöntemi ile aldığım değerin integer veya dobule olmasını istiyorum(kısacası sayısal değer).
Fakat aşağıdaki kodda "if not VarIsNumeric(s) then " satırı sayısal değere rağmen false döndürüyor.
Şartı dogru şekilde nasıl kontrol ettırebılırım.
bölme işlemi ile hata olusuyormu dıye bakmaktan daha kolay bır yolu vardır heralde diye düsünüyorum
inputquery yöntemi ile aldığım değerin integer veya dobule olmasını istiyorum(kısacası sayısal değer).
Fakat aşağıdaki kodda "if not VarIsNumeric(s) then " satırı sayısal değere rağmen false döndürüyor.
Şartı dogru şekilde nasıl kontrol ettırebılırım.
bölme işlemi ile hata olusuyormu dıye bakmaktan daha kolay bır yolu vardır heralde diye düsünüyorum
var
SifirlamaValues: TArray<string>;
begin
SetLength(SifirlamaValues, 1);
if InputQuery('SIFIRLAMA DEĞERİNİZ GİRİNİZ',['1.Sayaç: '],SifirlamaValues,
function(const AValues: array of string): Boolean
var
s: string;
begin
Result := True;
for s in AValues do
begin
if not VarIsNumeric(s) then // bu satır sayısal değer girilse bile false döndürüyor.yanı begın bloguna gırıyor.
begin
Result := False;
end;
end;
if not Result then
begin
MessageDlg('Sayısal Değer Girilmelidir', mtError, [mbOk], 0);
end;
end
) then
begin
Memo1.Lines.AddStrings(SifirlamaValues);
end else
begin
Memo1.Lines.Add('Sayısal Değer Girilmedi');
end;
end;