Dbeditlerde Toplama "is not a valid integer value" Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen shochan »

S.a öncelikle bu sitede emeği geçen herkese teşekkür etmeyi bir borç bilirim sitenizi bayadır takip ediyorum ve takıldığım birçok konuda kimseye birşey sormadan arama yaparak sorularımın hepsine cvp buldum.

Lafı fazla uzatmadan konuya gireyim. Şimdi benim çalıştığım işyerinde kullanmak için yaptığım bir program var henüz bitmemiş durumda. Programı kısaca anlatayım bilgisayar sistem toplama aracı olarak kullanıcam bir program bu sitelerde hazır scriptlerle yapılmış olanların bir benzeri pc parçalarını seçip karşısında fiyatı yazıp en altta toplam kısmında ise seçilen ürünlerin tamamının toplam fiyatı yer alıyor.

Programda kullandıklarım:

Form1 için
DbLookupCombobox
Dbedit
Edit
Form2 için
PageControl ve bu PageControl içerisinde 16 adet TabSheet ve her TabSheet te ise DbGrid kullanıyorum

Veritabanım paradox (Programı tek bir pcde kullanacağım için paradox seçtim)

Şimdi aldığım hata şöyle dbedit 1...dbedit16 herbirinin change hanesine yazdığım kod şu:

Kod: Tümünü seç

edit2.Text:=intToStr(StrToint(dbEdit1.Text) + StrToint(dbEdit2.Text));
Buraya sadece dbedit1 ve dbedit2yi yazdım ama bu dbedti16ya kadar ilerliyo. Programı çalıştırmak istediğimde ise "is not a valid integer value " hatası alıyorum
ama bu kodu sadece dbedit1e yazıp dier dbeditlere yazmazsam program kısmen istediğim gibi çalışıyor.
forumda aramada yaptım ama bu hata ile ilgili sadece
http://delphiturkiye.com/forum/viewtopi ... %B1#p53284 bu adreste konu açılmış burda yazılanları okudum fakat şöyle bir durum sözkonusu linkte bikaç hocam şunları şöylemiş alan boş olduğu için null (veri yok) olduğu için birbaşka yorumdada integer alana farklı bir değer girildiği için convert işleminin gerçekleşmediğini söylemiş ama kullandığım veri tabanlarımda boş alan yada integer olupta integer dışında bir değer girdiğim alan yok bu konuda ne yapabilirim_? Yardımlarınızı bekliyorum. Farklı bi yöntem olabilir farklı bi fikir kod v.b herşey olabilir.

NOT: Kullanmış olduğum lookupcomboboxlar be dbeditlerin herbiri farklı veritabanına bağlı ve yorum yaparken profesyonel derecede deilde ortalama derecede bir programcı olduğumu gözönünde bulundurarak kod yazarsanız sevinirim.

Kusura bakmayın konu biraz uzun oldu ama okuyan arkadaşların derdimi daha ii anlaması için uzattım ve bu forumda ilk mesajım (Çünkü daha önce hiç konu açma gereği duymadım :ara sağolsun :D ) eğer bir hatam oldu ise affola... Şimdiden Teşekkürler.


Birşey daha söylemek istiyorum mj editlemek zorunda kaldım bu yüzden aynı kodu buton click eventine yazdığımda hiç bir hata almıyorum tamamen istediğim sonucu alıyorum. Ama ben ürün seçildiğinde direk olarak toplama işlemini yapmasını istiyorum.
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen shochan »

Ya arkadaşlar konuyu 10 kişi görüntülüyo fakat cevap yok bu konuda yardımlarınızı bekliyorum lütfen
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen khanco »

buton da editler yüklenmiş olup onchance de yüklenmeden işleme başlıyor olabilirmisin? biraz bekledikten sonra işlem yaptırsan böyle birşey denedinmi?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen aslangeri »

s.a.
strtoint yerine strtointdef fonksiyonunu kullanın.
editlerde veri yoksa varsayılan değer olarak verdiğiniz değeri kullanır.
bir diğer ihtimalde editlerde küsüratlı sayı girmeniz. küsüratlı sayılarda işlem yapmak için strtofloat ve floattostr fonksiyonlarını kullanmalısınız.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen shochan »

Cvplarınızdan dolayı tşk ederim.

editlerde virgüllü satı yok hepside tam sayı hatta ben yinede srttofloat olarak yazdım kodu ama aynı hatayı bu sefer "is not a valid float value" olarak veriyo :S nedendir anlamadım.
khanco yazdı:buton da editler yüklenmiş olup onchance de yüklenmeden işleme başlıyor olabilirmisin? biraz bekledikten sonra işlem yaptırsan böyle birşey denedinmi?
bunuda denedim ama sonuç aynı strtointdef aklıma gelmemişti birde onu deneyim artık olmazsa butonla bişeyler yaparım.
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen unicorn64 »

hatayı aldığınız satıra break point koyup hangi işlem sırasında hata verdiğini kontrol ettiniz mi? muhtemelen program ilk çalıştığında editler boş olduğu için hata veriyordur...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen aslangeri »

s.a.
muhtemelen edit içinde bir şey yazılı olmadığı için bu mesajı veriyordur.
dbedit kullandığınıza göre bunlar bir dataset e bağlı olmalılar.
dataset üzerinden giderek yapmaya çalışın.
birde strtoint yerine strtointdef i kullanın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen y.kulac »

evet.
arkadaşların dediği gibi, DbEditleri Toplarken StrToIntDef kullanın, şöyleki;

Kod: Tümünü seç

DbEdit3.text := intostr(StrToInt(DbEdit1.text) + StrToInt(DbEdit2.text)  )
bu toplama işleminde dbeditlerden 1 tanesi boş olursa yazdığınız hatayı alırsınız.

Kod: Tümünü seç

DbEdit3.text := intostr(StrToIntDef(DbEdit1.text,0) + StrToIntDef(DbEdit2.text,0)  )
bu toplama işleminde ise dbeditlerden boş olan varsa 0(sıfır) yazılır ve hata oluşmaz,
dikkat edin eğer def kullanırsanız, Editin sonuna ,0 yazmayı unutmayın.

kolay gelsin.
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Re: Dbeditlerde Toplama "is not a valid integer value" Hatası

Mesaj gönderen shochan »

Allah hepinizden ayrı ayrı razı olsun arkadaşlar cidden şuan verdiğiniz

Kod: Tümünü seç

DbEdit3.text := intostr(StrToInt(DbEdit1.text) + StrToInt(DbEdit2.text)  )
bu kodla sorunum çözüldü yorum yapan herkese ayrı ayrı teşekkür ediyorum yine programlamada takıldığım bir yeri delphi türkiye ile çözmüş oldum allah hepinizden razı olsun herkese iyi çalışmalar

Eğer ilerde yine başka bir sorunla karşılaşırsam önce kendim çözmeye olmazsa :ara ile oda olmadı yine sizlerin yardımıyla çözerim inş.

:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Cevapla