Merhabalar;
edit'in boş olmaması ve girilen değerin sıfır olmaması gerekiyor.
if (edit.text='') or (strtofloat(edit.text)=0) then ... şeklinde kontrol koyduğumda, eğer edit'te rakamdan başka karakter varsa "edit is not a floating point value" hatası veriyor. (edit'in numbersonly özelliğini true yaparsam, virgüllü sayı girişine izin vermiyor)
Yapmaya çalıştığım şeyi yapmanın doğru yolu nedir?
Şimdiden çok teşekkürler.
Edit'in boş olmaması
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Edit'in boş olmaması
Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
if (AnsiPos('.',TEdit(sender).Text)<>0) and (key='.') then key:=#0;
if (AnsiPos('.',TEdit(sender).Text)=0) and (key=',') then key:='.';
if not (Key in ['0'..'9', '.', #8, #9]) then Key := #0;
end;
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Edit'in boş olmaması
çok teşekkür ederim.loaded yazdı: ↑12 Eki 2019 10:08Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); begin if (AnsiPos('.',TEdit(sender).Text)<>0) and (key='.') then key:=#0; if (AnsiPos('.',TEdit(sender).Text)=0) and (key=',') then key:='.'; if not (Key in ['0'..'9', '.', #8, #9]) then Key := #0; end;
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: Edit'in boş olmaması
Alternatif Olarak StrToFloatDef Fonksiyonu kullanabilirsiniz.
Kod: Tümünü seç
if (StrToFloatDef( edit.text, 0 ) = 0 ) then