Çarpma İşlemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ercanskose
Üye
Mesajlar: 62
Kayıt: 18 Eyl 2011 02:31

Çarpma İşlemi

Mesaj gönderen ercanskose »

Arkadaşlar editlere girilen sayıları çarpmak istiyorum fakat bir türlü kodu çalıştıramadım.
Sorun sanırım currencyedit kullanmamadan kaynaklanıyor.

edit1 e adet giriyorum currencyedit1 e de para değerini giriyorum. çarpma yaptığımda hata veriyor. virgüllü değer hatası

2x5,00=hata

Kod: Tümünü seç

var
sayi2,sayi1,sonuc:real;
begin
sayi1:=StrToInt(cxtextEdit15.Text);
sayi2:=StrToInt(cxcurrencyedit4.Text);
sonuc:=sayi1*sayi2;

ShowMessage(FloatToStr(sonuc));
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Çarpma İşlemi

Mesaj gönderen Lord_Ares »

Büyük ihtimal, edite girdiğin 9,45 te virgül kullandığın için oluyor. bu şekilde girersen sorun olmaz 9.45
Dilersen editin keypress olayına şöyle yapabilirsin. aşağıdaki kod ile edit içine sadece rakam girilsin ve ondalık olarakta nokta kullanılsın demiş oluyoruz.

formun public kısmına bunu ekle

Kod: Tümünü seç

procedure SadeceSayi(Sender: TObject; var Key: Char; Ondalikli: Boolean = True);
sonra uses satırının hemen altına

Kod: Tümünü seç

 
procedure TForm1.SadeceSayi(Sender: TObject; var Key: Char; Ondalikli: Boolean = True);
begin
if Ondalikli then
begin
if not (key in ['0'..'9', #8,  '.']) then
Key := #0
end
else
begin
if not (key in ['0'..'9', #8]) then
Key := #0
end;
end;

hangi editte kullanıcaksan o editin onkeypressine

Kod: Tümünü seç

SadeceSayi(Sender, Key,false); //sondakini false yaparsan  ondalıklı girişe izin verir, true yaparsan ondalıklı giriş yapmaz

Ayrıca kodunda arkadaşımızın dediği gibi strtoınt olmamalı. aşağıdaki gibi olmalı. Dilersen flooattostr de kullanabilirsin.

Kod: Tümünü seç

sayi1:=StrToCurr(Edit1.Text);
sayi2:=StrToCurr(Edit1.Text);
sonuc:=sayi1*sayi2;
ShowMessage(CurrToStr(sonuc));
En son Lord_Ares tarafından 25 Nis 2014 02:06 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Çarpma İşlemi

Mesaj gönderen unicorn64 »

hata mesajını da yazsaydın daha net cevaplar alırdın...

currencyedit1 e ondalıklı değer giriyorsun ama değeri okurken int olarak okumaya çalışıyorsun...

sayi2:=StrToFloat(cxcurrencyedit4.Text);

olarak dene
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
ercanskose
Üye
Mesajlar: 62
Kayıt: 18 Eyl 2011 02:31

Re: Çarpma İşlemi

Mesaj gönderen ercanskose »

tşk arkadaşlar. prosedür le işi çözdüm. kodlar yanımda olmadığından çözümü paylaşamıyorum. en yakın zamanda paylaşıcam.
Cevapla