|
|
|
|
|
Dicas
|
|
Visual Basic (Windows)
|
|
|
Título da Dica: Código para pegar ou alterar configurações regionais ...
|
|
|
|
Postada em 2/1/2001 por Maze
mazesyst@ig.com.br
'CÓDIGO PARA PEGAR e ou ALTERAR CONFIGURAÇÔES REGIONAIS:
'ESTE código pega e altera as configurações Regionais. ' Abra um novo projeto no VB6 e: ' No Formulário insira: ' 4 botões e uma caixa texto.
' Este exemplo trata somente de simbolos: decimal e ' Currency (Moeda), mas voce poderá utilizá-lo para ' outros fins como: separador de data etc
'Em General Option Explicit
'Pega as configurações Private Declare Function GetLocaleInfo Lib "kernel32" Alias _ "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _ ByVal lpLCData As String, ByVal cchData As Long) As Long
'Altera as configurações Private Declare Function SetLocaleInfo Lib "kernel32" Alias _ "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _ ByVal lpLCData As String) As Boolean
Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
'Constantes das Configurações Regionais Const LOCALE_ICENTURY = &H24 Const LOCALE_ICOUNTRY = &H5 Const LOCALE_ICURRDIGITS = &H19 Const LOCALE_ICURRENCY = &H1B Const LOCALE_IDATE = &H21 Const LOCALE_IDAYLZERO = &H26 Const LOCALE_IDEFAULTCODEPAGE = &HB Const LOCALE_IDEFAULTCOUNTRY = &HA Const LOCALE_IDEFAULTLANGUAGE = &H9 Const LOCALE_IDIGITS = &H11 Const LOCALE_IINTLCURRDIGITS = &H1A Const LOCALE_ILANGUAGE = &H1 Const LOCALE_ILDATE = &H22 Const LOCALE_ILZERO = &H12 Const LOCALE_IMEASURE = &HD Const LOCALE_IMONLZERO = &H27 Const LOCALE_INEGCURR = &H1C Const LOCALE_INEGSEPBYSPACE = &H57 Const LOCALE_INEGSIGNPOSN = &H53 Const LOCALE_INEGSYMPRECEDES = &H56 Const LOCALE_IPOSSEPBYSPACE = &H55 Const LOCALE_IPOSSIGNPOSN = &H52 Const LOCALE_IPOSSYMPRECEDES = &H54 Const LOCALE_ITIME = &H23 Const LOCALE_ITLZERO = &H25 Const LOCALE_NOUSEROVERRIDE = &H80000000 Const LOCALE_S1159 = &H28 Const LOCALE_S2359 = &H29 Const LOCALE_SABBREVCTRYNAME = &H7 Const LOCALE_SABBREVDAYNAME1 = &H31 Const LOCALE_SABBREVDAYNAME2 = &H32 Const LOCALE_SABBREVDAYNAME3 = &H33 Const LOCALE_SABBREVDAYNAME4 = &H34 Const LOCALE_SABBREVDAYNAME5 = &H35 Const LOCALE_SABBREVDAYNAME6 = &H36 Const LOCALE_SABBREVDAYNAME7 = &H37 Const LOCALE_SABBREVLANGNAME = &H3 Const LOCALE_SABBREVMONTHNAME1 = &H44 Const LOCALE_SCOUNTRY = &H6 Const LOCALE_SCURRENCY = &H14 Const LOCALE_SDATE = &H1D Const LOCALE_SDAYNAME1 = &H2A Const LOCALE_SDAYNAME2 = &H2B Const LOCALE_SDAYNAME3 = &H2C Const LOCALE_SDAYNAME4 = &H2D Const LOCALE_SDAYNAME5 = &H2E Const LOCALE_SDAYNAME6 = &H2F Const LOCALE_SDAYNAME7 = &H30 Const LOCALE_SDECIMAL = &HE Const LOCALE_SENGCOUNTRY = &H1002 Const LOCALE_SENGLANGUAGE = &H1001 Const LOCALE_SGROUPING = &H10 Const LOCALE_SINTLSYMBOL = &H15 Const LOCALE_SLANGUAGE = &H2 Const LOCALE_SLIST = &HC Const LOCALE_SLONGDATE = &H20 Const LOCALE_SMONDECIMALSEP = &H16 Const LOCALE_SMONGROUPING = &H18 Const LOCALE_SMONTHNAME1 = &H38 Const LOCALE_SMONTHNAME10 = &H41 Const LOCALE_SMONTHNAME11 = &H42 Const LOCALE_SMONTHNAME12 = &H43 Const LOCALE_SMONTHNAME2 = &H39 Const LOCALE_SMONTHNAME3 = &H3A Const LOCALE_SMONTHNAME4 = &H3B Const LOCALE_SMONTHNAME5 = &H3C Const LOCALE_SMONTHNAME6 = &H3D Const LOCALE_SMONTHNAME7 = &H3E Const LOCALE_SMONTHNAME8 = &H3F Const LOCALE_SMONTHNAME9 = &H40 Const LOCALE_SMONTHOUSANDSEP = &H17 Const LOCALE_SNATIVECTRYNAME = &H8 Const LOCALE_SNATIVEDIGITS = &H13 Const LOCALE_SNATIVELANGNAME = &H4 Const LOCALE_SNEGATIVESIGN = &H51 Const LOCALE_SPOSITIVESIGN = &H50 Const LOCALE_SSHORTDATE = &H1F Const LOCALE_STHOUSAND = &HF Const LOCALE_STIME = &H1E Const LOCALE_STIMEFORMAT = &H1003
'CÒDIGO PARA O FORMULÁRIO: Private Sub Command1_Click() ' PEGA simbolo decimal ATUAL
Dim Symbol As String Dim iRet1 As Long Dim iRet2 As Long Dim lpLCDataVar As String Dim Pos As Integer Dim Locale As Long Locale = GetUserDefaultLCID() iRet1 = GetLocaleInfo(Locale, LOCALE_SDECIMAL, lpLCDataVar, 0) Symbol = String$(iRet1, 0) iRet2 = GetLocaleInfo(Locale, LOCALE_SDECIMAL, Symbol, iRet1) Pos = InStr(Symbol, Chr$(0)) If Pos > 0 Then Symbol = Left$(Symbol, Pos - 1) MsgBox "Simbolo decimal atual = " + Symbol End If
End Sub
Private Sub Command2_Click() ' PEGA SIMBOLO CURRENCY ATUAL
Dim Symbol As String Dim iRet1 As Long Dim iRet2 As Long Dim lpLCDataVar As String Dim Pos As Integer Dim Locale As Long Locale = GetUserDefaultLCID() iRet1 = GetLocaleInfo(Locale, LOCALE_SMONDECIMALSEP, lpLCDataVar, 0) Symbol = String$(iRet1, 0) iRet2 = GetLocaleInfo(Locale, LOCALE_SMONDECIMALSEP, Symbol, iRet1) Pos = InStr(Symbol, Chr$(0)) If Pos > 0 Then Symbol = Left$(Symbol, Pos - 1) MsgBox "Simbolo currency atual = " + Symbol End If
End Sub
Private Sub Command4_Click() ' Altera o Simbolo Decimal
Dim Symbol As String Dim iRet As Long Dim Locale As Long On Error GoTo ErroTexto If Trim(Text1) = "" Then GoTo ErroTexto Locale = GetUserDefaultLCID() 'Get user Locale ID Symbol = Text1 'Novo caracter para a configuração Regional 'digite um novo simbolo na caixa-texto iRet = SetLocaleInfo(Locale, LOCALE_SDECIMAL, Symbol) Exit Sub
ErroTexto: MsgBox "Digite um simbolo DECIMAL válido"
End Sub
Private Sub Command3_Click() ' Altera o Simbolo CURRENCY
Dim Symbol As String Dim iRet As Long Dim Locale As Long On Error GoTo ErroTexto If Trim(Text1) = "" Then GoTo ErroTexto Locale = GetUserDefaultLCID() 'Get user Locale ID Symbol = Text1 'Novo caracter para a configuração Regional 'digite um novo simbolo na caixa-texto iRet = SetLocaleInfo(Locale, LOCALE_SMONDECIMALSEP, Symbol) Exit Sub
ErroTexto: MsgBox "Digite um simbolo CURRENCY válido"
End Sub
'sds,
'Maze
|
|
|
|
|