Edit'in boş olmaması

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

Edit'in boş olmaması

Mesaj gönderen YeniÜye »

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: 122
Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:

Re: Edit'in boş olmaması

Mesaj gönderen loaded »

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: 10
Kayıt: 18 Şub 2019 12:34

Re: Edit'in boş olmaması

Mesaj gönderen YeniÜye »

loaded yazdı: 12 Eki 2019 10: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: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Edit'in boş olmaması

Mesaj gönderen yusuf simsek »

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