Büyük ihtimal, edite girdiğin 9,45 te virgül kullandığın için oluyor. bu şekilde girersen sorun olmaz 9.45
Dilersen editin keypress olayına şöyle yapabilirsin. aşağıdaki kod ile edit içine sadece rakam girilsin ve ondalık olarakta nokta kullanılsın demiş oluyoruz.
formun public kısmına bunu ekle
Kod: Tümünü seç
procedure SadeceSayi(Sender: TObject; var Key: Char; Ondalikli: Boolean = True);
sonra uses satırının hemen altına
Kod: Tümünü seç
procedure TForm1.SadeceSayi(Sender: TObject; var Key: Char; Ondalikli: Boolean = True);
begin
if Ondalikli then
begin
if not (key in ['0'..'9', #8, '.']) then
Key := #0
end
else
begin
if not (key in ['0'..'9', #8]) then
Key := #0
end;
end;
hangi editte kullanıcaksan o editin onkeypressine
Kod: Tümünü seç
SadeceSayi(Sender, Key,false); //sondakini false yaparsan ondalıklı girişe izin verir, true yaparsan ondalıklı giriş yapmaz
Ayrıca kodunda arkadaşımızın dediği gibi strtoınt olmamalı. aşağıdaki gibi olmalı. Dilersen flooattostr de kullanabilirsin.
Kod: Tümünü seç
sayi1:=StrToCurr(Edit1.Text);
sayi2:=StrToCurr(Edit1.Text);
sonuc:=sayi1*sayi2;
ShowMessage(CurrToStr(sonuc));