Desimal point ayarı (çözüldü)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Desimal point ayarı (çözüldü)
win xp de bölge ve dil seçeneklerinde desimal point virgül e ayarlı diyelim.
programımızda noktayı kullanabilmek için
DecimalSeparator := '.' yazıyorum..
dbedit veya dbgrid alanlarında float değerleri editlerken buralara nokta yazamıyorum. yani nokta tuşu çalışmıyor virgül çalışıyor ancak tabii sonra hata mesajı veriyor. Ancak sistemden virgül değil de nokta yaparsam desimal pointi o zaman sorun yok. Diyeceksiniz virgül kullan öyle kalsın ama bu değerler xml olarak gideceğinden mutlaka nokta olmak zorunda.
kısaca sorum şu , sistem ayarlarıyla oynamadan program içinden nasıl hallederim bunu..
programımızda noktayı kullanabilmek için
DecimalSeparator := '.' yazıyorum..
dbedit veya dbgrid alanlarında float değerleri editlerken buralara nokta yazamıyorum. yani nokta tuşu çalışmıyor virgül çalışıyor ancak tabii sonra hata mesajı veriyor. Ancak sistemden virgül değil de nokta yaparsam desimal pointi o zaman sorun yok. Diyeceksiniz virgül kullan öyle kalsın ama bu değerler xml olarak gideceğinden mutlaka nokta olmak zorunda.
kısaca sorum şu , sistem ayarlarıyla oynamadan program içinden nasıl hallederim bunu..
En son varyemez tarafından 12 Nis 2011 12:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Desimal point ayarı
Decimal:='.' satırı sanırım biraz geç çalışıyor. Bu kodu projede diğer bileşenlerin bulunduğu unitler çalışmadan önce devreye girmesi için ilk çalışan unit'in initialization bloğuna yazarsanız sorun düzelecektir. Mesela ana formda en altta olabilir.
Kod: Tümünü seç
initialization
DecimalSeparator := '.';
end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Desimal point ayarı
Formcreate olayına koydum zaten.
ayrıca değerler display olurken normal nokta şeklinde çıkıyor. sadece editlemeye kalkınca nokta diye bir karakter yok sanki... var bir bit yeniği ama , bakalım
ayrıca değerler display olurken normal nokta şeklinde çıkıyor. sadece editlemeye kalkınca nokta diye bir karakter yok sanki... var bir bit yeniği ama , bakalım
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: Desimal point ayarı
sabanakdam'ın yazdığı gibi yapın.
formun oncreate olayına değil initialization bloğuna yazın.
formun oncreate olayına değil initialization bloğuna yazın.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Desimal point ayarı
Örneği denedim, onCreate olayında sizin yaşadığınız sorun çıktı ortaya ama örnek verdiğim kodda ki gibi yapınca hiç sorun olmadan nokta karakteri ile ondalıklı sayı girişi yapılabiliyor.varyemez yazdı:Formcreate olayına koydum zaten.
ayrıca değerler display olurken normal nokta şeklinde çıkıyor. sadece editlemeye kalkınca nokta diye bir karakter yok sanki... var bir bit yeniği ama , bakalım
sabanakman yazdı:....diğer bileşenlerin bulunduğu unitler çalışmadan önce devreye girmesi için ilk çalışan unit'in initialization bloğuna yazarsanız sorun düzelecektir. Mesela ana formda en altta olabilir.Kod: Tümünü seç
initialization DecimalSeparator := '.'; end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Desimal point ayarı
format setting i sistemden okumaması için false yap.unitlere sysutils i ekle.sonra istediğin formata ayarla.
Kod: Tümünü seç
begin
Application.Initialize;
Application.UpdateFormatSettings := False;
ThousandSeparator := ',';
DecimalSeparator := '.';
DateSeparator := '.';
TimeSeparator := ':';
ShortDateFormat := 'dd.mm.yyyy';
ShortTimeFormat := 'hh:mm';
LongTimeFormat := 'hh:mm';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...
http://www.tcct.us
Re: Desimal point ayarı (çözüldü)
Valla ne diyeyim , çocuklar gibi sevindim . @quadr ın dediği gibi initialization a koydum , canavar gibi çalışıyor. Hepinize çok teşekkürler.
Soran dağları aşmış
Sormayan doğru yoldan şaşmış..
Soran dağları aşmış
Sormayan doğru yoldan şaşmış..
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Re: Desimal point ayarı (çözüldü)
arkadaşlar selamlar... şaban hocam projemde aynı sorun vardı bende dediğiniz üzere Initialize bloğunda decimal sparator ü ve date sparatörü değiştiriyorum. parasal işlem yaparken eğer işletim sistemindeki ayarlara bağlı olarak decimal nokta ise (biz virgül kullanıyoruz) bir kaç işlemden sonra hata veriyor. hata verilen parasal özellikleiyle vermeyenler arasında bağlantı da yok. Bunun başka bir çözümü olablr mi?
Re: Desimal point ayarı (çözüldü)
s.a.
hata verdiği değerler bini aşmış olan değerler olablirmi. sadece decimalseperator yeterli olmayabilir. thousandseperator ü de set etmeyi deneyin.
kolay gelsin.
hata verdiği değerler bini aşmış olan değerler olablirmi. sadece decimalseperator yeterli olmayabilir. thousandseperator ü de set etmeyi deneyin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Re: Desimal point ayarı (çözüldü)
Benim projeyi hazırlarken işletim sistemindeki default ayar decimal : , thasund: . date: . dete format : dd.mm.yyyy şeklinde promin ana sayfasının enlatına
kodlarını ekliyorum. bazı pclerde decimal nokta thasund virgül oluyor date ayracı ise / oluyor. bunları bu şekilde sabitliyorum. sadece parasal alanlarda sıkıtı yapıyor tarihler istediğim gibi çalışıyor. ekrandaki bileşenler istediğim gibi ancak kaydet komutu verince parasal alanlarda tam paralarda sorun olmazken kuruşlu paralar hata veriyor.(hata çıkmıyor kilitlenyor cevap vermez hale geliyor)
Bunu nasıl çözeilirim.
15,00 ......................normal kaydediliyor
15,25 .......................kuruşlu verilerde kilitlenme yapıyor
Kod: Tümünü seç
initialization
DateSeparator := '.';
DecimalSeparator:=',';
ThousandSeparator := '.';
ShortDateFormat := 'dd.mm.yyyy';
Bunu nasıl çözeilirim.
15,00 ......................normal kaydediliyor
15,25 .......................kuruşlu verilerde kilitlenme yapıyor