Ola Adriano Santos e "Grupo" Agradeço a dica ... pois ela me ajudou e cheguei ao que precisava , segue a solução que encontrei ...
..... procedure SetDecimalSeparator(Ch: Char); var DefLCID: LCID; Buffer: LPSTR; begin Application.UpdateFormatSettings := True; StrPCopy(Buffer, Ch); DefLCID := GetThreadLocale; if SetLocaleInfo(DefLCID, LOCALE_SDecimal, Buffer) then DecimalSeparator := StrPas(Buffer)[1]; Application.UpdateFormatSettings := False; end; procedure SetTHOUSANDSeparator(Ch: Char); var DefLCID: LCID; Buffer: LPSTR; begin Application.UpdateFormatSettings := True; StrPCopy(Buffer, Ch); DefLCID := GetThreadLocale; if SetLocaleInfo(DefLCID, LOCALE_STHOUSAND, Buffer) then THOUSANDSeparator := StrPas(Buffer)[1]; Application.UpdateFormatSettings := False; end; ...... procedure TForm1.Button1Click(Sender: TObject); begin SetTHOUSANDSeparator('.'); SetDecimalSeparator(','); end; procedure TForm1.Button2Click(Sender: TObject); begin SetDecimalSeparator('.'); SetTHOUSANDSeparator(','); end; // muda para padrao ingles // SetTHOUSANDSeparator(','); // SetDecimalSeparator('.'); // ex: 10,000.00 // muda para padaro brasil // SetTHOUSANDSeparator('.'); // SetDecimalSeparator(','); // ex: 10.000,00 ..... Abraços Henri Vieira Alves Em 27/08/07, Adriano Santos <[EMAIL PROTECTED]> escreveu: > > Use as constantes do Delphi: > > Isso é pra trazer > procedure TForm1.Button1Click(Sender: TObject); > begin > //Separadores de decimais e de milhar respectivamente > Edit1.Text := DecimalSeparator; > Edit2.Text := ThousandSeparator; > //Data Curta e Data Longa respectivamente > Edit3.Text := ShortDateFormat; > Edit4.Text := LongDateFormat; > end; > > Pra gravar > procedure TForm1.Button3Click(Sender: TObject); > begin > //Separadores de decimais e de milhar respectivamente > DecimalSeparator := Edit7.Text; > ThousandSeparator := Edit8.Text; > //Data Curta e Data Longa respectivamente > ShortDateFormat := Edit9.Text; > LongDateFormat := Edit10.Text; > end; > > As duas dicas acima são pra usar dentro do seu sistema. Não será > alterado no Windows. > Pra gravar no Windows use: > > //Data curta > procedure TForm1.Button4Click(Sender: TObject); > var > vDataCurta : String; > begin > SetLength(vDataCurta,12); > > > GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SSHORTDATE,PChar(vDataCurta),12); > end; > //Data longa > procedure TForm1.Button22Click(Sender: TObject); > begin > > SetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SYSTEM_DEFAULT,Pchar(Edit5.Text > )); > end; > //Decimal e milhar > procedure TForm1.Button5Click(Sender: TObject); > begin > SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, SeuEdit.Text); > SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SDECIMAL, SeuEdit.Text); > end; > > Da uma estudada legal em SetLocaleInfo e GetLocaleInfo. > > Abs > > -- > Adriano Santos > Desenvolvedor Delphi desde 1998. Professor e programador PHP. > Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP. > > Colunista e Comissão Editorial da revista ClubeDelphi. > http://www.delphitodelphi.blogspot.com > > henrihva respondeu: > > > > Preciso alterar as configurações regionas e de idiomas do windows , > > via programa . > > Meu aplicativo vai fazer uma serie de tarefas, chamar outros > > programas, imprimir um relatorio, enviar dados pra um determinado > > arquivo, etc ... e dentre estas tarefas eu preciso mudar a > > configuração regional de idiomas do Windows ... > > mudar o simbolo decimal de numeros e valores ... troca-los para o > > padrão ingles ... Exemplo : 10.000,00 preciso alterar para 10,000.00 > > > > Sei que posso formata-los dentro do meu aplicativo ... mas o meu > > programa vai chamar um segundo programa que só roda corretamente com > > as configuraçoes regionais "setadas" pro ingles ... > > > > O que preciso fazer eh o seguinte : > > > > 1º - quando o programa for executado ele alterar as configuraçoes do > > windows pra "forma" do ingles ... isso precisa ser feito no windows > > > > 2º - O programa vai chamar outro aplicativo que vai fazer uma > > determinada tarefa ( neste ponto este aplicativo só roda no padrao > > ingles) > > > > 3º - o programa vai alterar novamente as configuraçoes regionas do > > windows para o padrão portugues ... > > > > Se alguem puder me dar pelo menos uma dica de onde procurar isso .... > > infelizmente não consegui achar no google e nem na lista ... > > > > (Isso seria feito via API do windows ?) alguma dica onde achar isso ? > > > > Fico muito grato > > > > Henri V. Alves > > > > > > ---------------------------------------------------------- > > > > No virus found in this incoming message. > > Checked by AVG Free Edition. > > Version: 7.5.484 / Virus Database: 269.12.9/975 - Release Date: > 26/8/2007 21:34 > > > > > [As partes desta mensagem que não continham texto foram removidas]