Bölgesel Dil Ayarları

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Bölgesel Dil Ayarları

Mesaj gönderen haydarxxx »

Slm
Denetim masasındaki bölgesel dil ayarlarından para birimi bölümünü kod ile nasıl değiştirebiliriz.(shellapi kullanmadan elle değik kod ile).Teşekkür diyorum ilgileneceklere
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

Kod: Tümünü seç


var
  y_deg: PAnsiChar;
begin
  Y_Deg := '$';
  SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SCURRENCY, y_deg);
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

sayın ylmz
Çok teşekkür ediyorum.ne zamandır arıyorum böyle bir kodu.sağolasın
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Tekrar ben :oops:
ylmz projemizi yada exe mizi kapatığımızda para birimini eski haline çevirtebilirmiyiz.tabi nasıl :?
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

merhaba,

Kod: Tümünü seç

var
  para: String;
begin
  para  := CurrencyString;
bu şekilde programın başlangıcında kullanılan parabirimini öğrenebilirsin.Ama kullanıcıya bilgi vermeden bu tarz bölgesel ayarları değiştirmeni tavsiye etmem.iyi çalışmalar.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Ok.Teşekkürler
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Hiçbir koşulda kullanıcının sistem yerel ayarları ile oynamayın. Programınız beklenmeyen biçimde kapanırsa bu ayarları geri alamayacaksınız.

Bunun yerine System unitinde tanımlanmış olan:

var
CurrencyString: string;

değişkeni ile işinizi görün. Bu değişken sadece uygulamanıza özeldir. Yani değiştirdiğinizde, sistemin ayarları değil sadece uygulamanızınki değişir. Uygulamayı kapatırken eski ayarları yüklemeniz gerekmez.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

sy coderlord
aslında benim yapmak istediğim paradox veri tabnında money olarak belirlediğim para alanına hesaplatma yaptırmak ama para değerinin sonunda TL,YTL gibi birim ifadeleri çıktığı için matematiksel işlem yaptırmak zor oluyor

edit3.Text:=ansireplacestr(edit3.text,'.','');
edit3.Text:=ansireplacestr(edit3.text,'YTL',''); komutundan da kaçmak istiyorum o yüzden para birimini bölgesel ayarlarda boşluk olarak belirleyip dbedit alanlarında hesaplatma işini yaptırabilmek.Kullanıcının ayarlarını değiştirmek istemem ama başka bir yol bulamıyorum.alanımı paradeğeri olarak görmek ve hesaplatmak istiyorum.

Ayrıca

uses imde
......SysUtils, olarak var

Bunun yerine System unitinde tanımlanmış olan:
var
CurrencyString: string; biraz açarmısın ne yapılmalı.İlginize teşekkür ediyorum
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

merhaba

ilk yaratılan modulün en altına (yada unit varsa)

Kod: Tümünü seç

initialization
  CurrencyString := '$'; //sizin istediğiniz parabirimi
yazın.Böylece sadece sizin programınızdaki para birimi değişecektir.Yerel ayarlarda bi değişiklik olmicak
kolay gelsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

haydarxxx yazdı: aslında benim yapmak istediğim paradox veri tabnında money olarak belirlediğim para alanına hesaplatma yaptırmak ama para değerinin sonunda TL,YTL gibi birim ifadeleri çıktığı için matematiksel işlem yaptırmak zor oluyor
eğer kodlarınızda editlerdeki değerleri değilde tablodaki alanların değerlerine işlem yaptırırsanız currency alanlarda sıkıntı olmaması lazım.

Kod: Tümünü seç

editbilmemne.text:=strtofloat(editx.text)*strtoint(edity.text)
değilde

Kod: Tümünü seç

tabloxtoplam.ascurrency:=tabloxalan1.ascurrency*tabloxalan2.asscurrency;
şeklinde kullanmanız sorunu aşmanızı sağlar.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

aslangeri

table1Para3.ascurrency:=(table1Para1.ascurrency)*(table1Para2.asscurrency);

şeklinde bir para.db oluşturdum Para1,Para2,Para3 money alanlı belirledim parantezli ve parantezsiz deneme yaptım ama satır hatası veriyor.Nerede hata yapmış olabilirim.Eğer böyle bir kod çalışırsaki sanırım çalıştıran vardır çok iyi olacak.herkeze bu yardım ve ilgiden dolayı teşekkür ediyorum.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Mesaj gönderen m_ekici »

Paradox Tablosundaki alanların Currency özelligini false yaparsan YTL veya TL gelmez.

Birde program girişinde binlik ve kuruş ayıraçlarını belirleyebilirsin.

DecimalSeparator := ',';
ThousandSeparator := '.';
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

haydarxxx yazdı:aslangeri

table1Para3.ascurrency:=(table1Para1.ascurrency)*(table1Para2.asscurrency);

şeklinde bir para.db oluşturdum Para1,Para2,Para3 money alanlı belirledim parantezli ve parantezsiz deneme yaptım ama satır hatası veriyor.
satır hatası nedir.
vediği hata mesajını tam olarak söylersen. iyi olur.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Build
[Error] Unit1.pas(45): Undeclared identifier: 'asscurrency'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

sy m_ekici
dbedit3.text:=floattostr(strtofloat(dbedit2.text)*strtofloat(dbedit1.text)); için
dediğinizi yaptım matemetiksel işlem yapıyor ama para ayraçları için bahsettiğiniz

DecimalSeparator := ',';
ThousandSeparator := '.'; nasıl kullanacağım
Cevapla