Bölgesel ayarları nasıl değiştirebilirim ?

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
Cevapla
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Bölgesel ayarları nasıl değiştirebilirim ?

Mesaj gönderen bilbeyi »

Delphi ile windows'un bölgesel ayarlarını değiştirmeyi nasıl yapabilirim ?
mesela ondalık ayıracı virgül (,) yerine nokta (.) yapmak istiyorum
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

var CurrencyString: string;

var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;
var LongTimeFormat: string;

var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;
var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;

var ListSeparator: Char;
SysUtils uniti içinde örnek olarak

Kod: Tümünü seç

      THOUSANDSEPARATOR:='.';
     DecimalSeparator:=',';
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

denedim ama bir değişiklik olmadı.
her hangi bir form üzerinde denememim bir farkı olurmu ?
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Ben yukarıda yanlış anlamışım galiba

Kod: Tümünü seç

      THOUSANDSEPARATOR:=','; // Binlik ayrıcı
     DecimalSeparator:='.'; // Ondalık ayırıcı

Birde kullandığınız 3.parti bir bileşen ise etkili olmayabilir belki. Bileşen üzerinde ayarları olabilir.
İlk Formunuzun onshow yordamına yazın tüm projenizde geçerli olacaktır.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

başka bir forumdan bulduğum cevap ama denemedim

/////////////////////////////////////////////////

WinExec(pchar ('rundll32.exe shell32.dll Control_RunDLL intl.cpl,,1'), 0);

yukaridaki komutla halledersin....

////////////////////////////////////////////////////
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu konuda aşağıdakilere bakabilirsin.. F1 please :wink:

Kod: Tümünü seç

  Application.UpdateFormatSettings := True;

  GetUserDefaultLCID();

  DateOrder := doDMY;

  DateSeparator := '.';

  DateFullYear := True;

  DateLeadZero := True;

vs.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

trsoft'un çözümünü ve rŞimsek'in çözümünü denedim ama hala aynı duruyor.
Bu arada Rşimsek gönderdiğiniz kodların sadece
Application.UpdateFormatSettings := True;
GetUserDefaultLCID();
DateSeparator := '.';
kısmını kullandım. Diğer kısımlarda 'tanımsız' diye hata veriyor. Acaba uses kısmına herhangi bir şey yazmammı gerekiyor?
tuanna'nın vermiş olduğu sonuç ise bölgesel ayarlar kısmını çalıştırıyor. Benim amacım program çalıştığında direkt olarak ayarları değiştirmesi
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Kod: Tümünü seç

DecimalSeperator := '.'
ThousandSeperator := ',';
ana formuna kod yazarsan uygulaman bölgesel ayarları o şekilde kullanır. Fakat 3. parti numeric edit vs kullanıyorsan bu bileşenlerde kendi tanımlarını yapmış olabilirler, onu bir kontrol edersen iyi olur.

Kolay gelsin
Hüseyin BAHADIR
Cevapla