Edit'in boş olmaması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
YeniÜye
Üye
Mesajlar: 6
Kayıt: 18 Şub 2019 11:34

Edit'in boş olmaması

Mesaj gönderen YeniÜye » 12 Eki 2019 09:33

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.

Kullanıcı avatarı
loaded
Üye
Mesajlar: 78
Kayıt: 12 Eki 2010 08:45
Konum: Konya
İletişim:

Re: Edit'in boş olmaması

Mesaj gönderen loaded » 12 Eki 2019 09:08

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.

YeniÜye
Üye
Mesajlar: 6
Kayıt: 18 Şub 2019 11:34

Re: Edit'in boş olmaması

Mesaj gönderen YeniÜye » 13 Eki 2019 10:32

loaded yazdı:
12 Eki 2019 09:08

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; 
çok teşekkür ederim.

yusuf simsek
Üye
Mesajlar: 313
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Edit'in boş olmaması

Mesaj gönderen yusuf simsek » 20 Kas 2019 04:00

Alternatif Olarak StrToFloatDef Fonksiyonu kullanabilirsiniz.

Kod: Tümünü seç

if (StrToFloatDef( edit.text, 0 ) = 0 ) then
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Cevapla