Kuruşlu para girişi

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
sturen
Üye
Mesajlar: 11
Kayıt: 05 Haz 2014 08:27

Kuruşlu para girişi

Mesaj gönderen sturen »

Mrb;

2 haneli kuruş kısmıda dahil ,sağa yaslamalı adam gibi çalışan para girişi yapabileceğim bir companente ihtiyacım var. Daha önce muhasebe programı yazmış olanlar bilir. Var mıdır?

Şimdiden teşekkürler;
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7589
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Kuruşlu para girişi

Mesaj gönderen mussimsek »

Bu iş için componente gerek yok. Dataset'in display ve editformat'larını kullanarak bu işi halledebilirsin. @Husonet böyle bir component yazmıştı yanlış hatırlamıyorsam.

Kolay gelsin.
sturen
Üye
Mesajlar: 11
Kayıt: 05 Haz 2014 08:27

Re: Kuruşlu para girişi

Mesaj gönderen sturen »

Veri tabanına kayıt yapmayacağım. Dolar,Euro,Tl dönüşümü için çalışıyorum. Ama biraz daha kompleks şekilde. Şöyleki paraları temsil eden 3 edit var. Hangi editte işlem yaparsan yap değer girildiği gibi diğer ikisinde karşılığı hesaplanıyor. Dahada fazlası var aslında ama bu kadarı çalışsa kafi. Bunu jquery ile web tabanlı olarak yaptım ve sorunsuz çalışıyor. Şimdi delphiye uyarlamak istiyorum. Birçok örneğe baktım bazı companentleri denedim istediğim gibi çalışmıyor. Yazılan rakamlar input terkedildikten sonra binlik ve kuruş hanesine dönüyor. Ben her rakam girişi yapıldığında edit otomatik yapsın istiyorum. Editin KeyUp ve Keypress özelliğini kontrol ederek bir şeyler yaptım aslında. Doğru sınırlama ve kısıtlamalar ile kuruş hanesi olan virgülden öncesi ve sonrasını kontrol edebiliyorum şuan.

Sonunda TEdit(Sender).Text:= formatFloat('#,###.#0', strtoCurr(sayi)); komutu ilede Edit'i istediğim şekilde biçimlendirmiş oluyorum. Çözüme çok yaklaştım şuan sıkıntım imleçte. TEdit(Sender).Text:= formatFloat('#,###.#0', strtoCurr(sayi)); komutundan sonra input içeriği değiştiği için imleç sayının başına yani sıfır konumuna geliyor. Edit'in Selstar özelliği ile imleci kontrol edip biçimlendirmeden önce sayının neresinde olduğunu (sayımız 123,44 olsun 5 rakamını eklemek isteyelim. 5 rakamını 1 den sonra eklemişte olabiliriz 2 den sonra hatta 4ün başında ve sonunda olabilir.) hesaplayıp biçimlendirmeden sonra oraya konumlamaya çalışıyorum. Nedense iş binler basamağına gelince bozuluyor. Binler basamağında sayıya nokta ayracı (5.123,44 gibi) ekleniyor. Bunun etkisi sayının karakter uzunluğunu bir arttırmaktan öte. Selstar işe yaramıyor. Milyonlara çıktığımızı düşünürsek (98.543.123,44) her nokta ayracından sonra selstar değeri sıfır oluyor. Yani selstar 1 ise imleç 9 dan sonrada olabilir, 5 ten sonrada 1 den sonrada. Çözüm ?

Not: Tam sayı uzunluğunu 3e göre Mod alıp denedim olmadı yada ben beceremedim.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Kuruşlu para girişi

Mesaj gönderen SimaWB »

There's no place like 127.0.0.1
sturen
Üye
Mesajlar: 11
Kayıt: 05 Haz 2014 08:27

Re: Kuruşlu para girişi

Mesaj gönderen sturen »

MaskEditte #,###.#0 gibi hane tanımlaması yapmak lazım. Milyon hane tanımlayıp bin hane girişi yapılırsa mask tamamlanmamış olur. Yanılıyor muyum?
SimaWB yazdı:TMaskEdit
Kullanıcı avatarı
cinarbil
Üye
Mesajlar: 109
Kayıt: 18 Mar 2014 09:26

Re: Kuruşlu para girişi

Mesaj gönderen cinarbil »

PBNumEdit kullanıyorum. çok kullanışlı istediğiniz gibi özelleştirebiliyorsunuz.

lazım olduğunda urunfiyat.text derseniz sitring döndürüyor urunfiyatı.float veya integer gibi kullanabiliyorsunuz kesinlikle tavsiye ederim ücretsiz.

aynısının PBdbedit olanı var


http://bak-o-soft.dk/Delphi/PBEditPack.aspx bilginize
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
sturen
Üye
Mesajlar: 11
Kayıt: 05 Haz 2014 08:27

Re: Kuruşlu para girişi

Mesaj gönderen sturen »

Teşekkürler;
Lakin geçen sürede key press eventını dikkate alarak kendi editimi kendim yarattım.
Böylesi daha iyi oldu. Yalnız bir noktada takıldım.
DELETE tuşu.
keypresste delete tuşu nedense engellenemiyor.Biraz araştırdım hep klasik Key = #... eşitliğini göstermişler çözüm olarak. Ama işe yaramıyor. DELETE tuşunu etkisiz kılmam lazım. Onuda yaparsam süper olacak.

Bilen var mı?
cinarbil yazdı:PBNumEdit kullanıyorum. çok kullanışlı istediğiniz gibi özelleştirebiliyorsunuz.

lazım olduğunda urunfiyat.text derseniz sitring döndürüyor urunfiyatı.float veya integer gibi kullanabiliyorsunuz kesinlikle tavsiye ederim ücretsiz.

aynısının PBdbedit olanı var


http://bak-o-soft.dk/Delphi/PBEditPack.aspx bilginize
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Kuruşlu para girişi

Mesaj gönderen xozcanx »

sturen yazdı:Teşekkürler;
Lakin geçen sürede key press eventını dikkate alarak kendi editimi kendim yarattım.
Böylesi daha iyi oldu. Yalnız bir noktada takıldım.
DELETE tuşu.
keypresste delete tuşu nedense engellenemiyor.Biraz araştırdım hep klasik Key = #... eşitliğini göstermişler çözüm olarak. Ama işe yaramıyor. DELETE tuşunu etkisiz kılmam lazım. Onuda yaparsam süper olacak.

Bilen var mı?
cinarbil yazdı:PBNumEdit kullanıyorum. çok kullanışlı istediğiniz gibi özelleştirebiliyorsunuz.

lazım olduğunda urunfiyat.text derseniz sitring döndürüyor urunfiyatı.float veya integer gibi kullanabiliyorsunuz kesinlikle tavsiye ederim ücretsiz.

aynısının PBdbedit olanı var


http://bak-o-soft.dk/Delphi/PBEditPack.aspx bilginize
Merhaba;
if Key = #127 then şeklinde denediğinizde nasıl bir sonuç alıyorsunuz?
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
sturen
Üye
Mesajlar: 11
Kayıt: 05 Haz 2014 08:27

Re: Kuruşlu para girişi

Mesaj gönderen sturen »

KeyDown Event'ına eklenen aşağıdaki kod ile olay çözülmüştür.

Herkese teşekkürler;

Kod: Tümünü seç

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key = VK_DELETE then begin
    Beep;
    Key:= 0;
   end;
end;
Cevapla