Edit Sayı Çevirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Edit Sayı Çevirme

Mesaj gönderen ozcank »

Merhaba , Arkadaşlar Edit5.Text alanım var bu alana karakter ve virgül girişini engelledim, fakat rapor alırken hata veriyor yardımcı olabilir misiniz?


İlk Önce ;

Kod: Tümünü seç

procedure TForm19.Edit5KeyPress(Sender: TObject; var Key: Char);
Begin
      if not (key in ['0'..'9', #8]) then
  begin
    Key:=#0;
  end;
  end;


procedure TForm19.Edit5Exit(Sender: TObject);
begin
Edit5.Text:=FormatFloat('#,##.00',StrToFloat(Edit5.Text));
end;
End.


Sonra Rapor da ;

Kod: Tümünü seç

'HAVING (Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T)>=$'+Edit5.Text+' AND TBLFATUIRS.FTIRSIP=''1'' AND month(tarih)='+#39+''+Edit1.Text+''+#39+') AS TT ' +
Burayı $'+Edit5.Text+'
StrToInt(IntToStr($'+Edit5.Text+')) yaptım yine " Incorret Syntax Near ',' " hatası verdi.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Edit Sayı Çevirme

Mesaj gönderen ertank »

Merhaba,

Kod: Tümünü seç

Edit5.Text:=FormatFloat('#,##.00',StrToFloat(Edit5.Text));
Bu işlem sonucunda elle girilen 1000 rakamı ekranda Türkçe format ayarlarında 1.000,00 haline gelecektir. Bu string değeri direk olarak StrToInt() gibi bir fonksiyon kullanarak rakama çevirmeniz veya direk olarak SQL komutunda rakam parametresi gibi kullanmanız mümkün olmaz. Hata alırsınız.

Ççzüm olarak;
1- Tekrar 1000 haline geri çevirip kullanabilirsiniz. Özetle 1.000,00 içinden binlik ayracı "." ve ondalık ayracı "," karakterlerini silmeniz ve elde ettiğiniz 100000 değerini rakama çevirip 100'e bölmeniz gerekecektir. Unutulmamalıdır ki binlik ayracı ve ondalık ayracı işletim sisteminin ayarlarına göre değişiklik gösterebilir.
2- Daha pratik olarak Edit5Exit() olayını olduğu gibi iptal edip ekranda 1000 olarak girilen bilginin bu şekilde kalmasını sağlayabilirsiniz. Direk olarak istediğiniz yerde kullanabilirsiniz.
3- Eğer Edit5.Hint kullanılabilir ise Edit5Exit() olayında Hint alanına mevcut 1000 değerini saklayıp ekranda istediğiniz gibi göstermeye devam edin. Kullanacağınız zaman Edit5.Text değil Edit5.Hint olarak kullanın.

Bunlar dışında alternatif çözümler de önerilebilir. Şahsen 2 numaralı seçeneği öneririm.

Son olarak, kullandığınız SQL komutundan $ işaretini kaldırmanız gerekir.
Cevapla