blackman12 Posted March 31, 2012 Share Posted March 31, 2012 Evet gecenin 1inde oturdum bu fonksiyonu yazdım arkadaşlar. işinizi hayli kolaylaştırabilecek bir fonksiyon. Bir örneği paylaşıyorum aşağıda kullanım alanları geniştir. size düşen bu alanları keşfetmek: [code]Global $dildosyasi = "lang.ini" $gui = GUICreate("",500,500) $combo = GUICtrlCreateCombo("",20,20,100,20,0x0003) $button = GUICtrlCreateButton("tamam",20,50,100,25) $label = GUICtrlCreateLabel("",20,90,100,20) $input = GUICtrlCreateInput("",20,120,100,21) $buton2 = GUICtrlCreateButton("",20,150,100,25) ; $lang = _RegOku("lang","Türkçe") $dilgetir = _SetLanguage($lang) GUICtrlSetData($combo,_SetLanguage($lang,0),$lang) GUICtrlSetData($label,$dilgetir[1]) GUICtrlSetData($input,$dilgetir[2]) GUICtrlSetData($buton2,$dilgetir[3]) WinSetTitle($gui,"",$dilgetir[4]) ; GUISetState() While 1 $nmsg = GUIGetMsg() Switch $nmsg Case -3 Exit Case $button RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil","lang","REG_SZ",GUICtrlRead($combo)) $yenile = _SetLanguage(GUICtrlRead($combo)) GUICtrlSetData($label,$yenile[1]) GUICtrlSetData($input,$yenile[2]) GUICtrlSetData($buton2,$yenile[3]) WinSetTitle($gui,"",$yenile[4]) EndSwitch WEnd Func _SetLanguage($dil,$flag = 1) Local $dilvar = 0, $return[1] = [0], $diller = "" if FileExists($dildosyasi) Then $dilvarmi = IniReadSectionNames($dildosyasi) if Not @error Then if $flag Then for $i = 1 to $dilvarmi[0] if $dilvarmi[$i] = $dil Then $dilvar = 1 ExitLoop EndIf Next if $dilvar = 0 Then SetError(3) Return -3 Else $deger = IniRead($dildosyasi,"t","deger",3) ReDim $return[$deger+2] $return[0] = $deger+1 if Not @error Then for $i = 1 to $deger+1 $return[$i] = IniRead($dildosyasi,$dil,$i-1,"") Next SetError(0) Return $return Else SetError(4) Return -4 EndIf EndIf Else for $i = 1 to $dilvarmi[0] if $dilvarmi[$i] <> "t" Then $diller &= $dilvarmi[$i] & "|" Next Return $diller EndIf Else SetError(2) Return -2 EndIf Else SetError(1) Return -1 EndIf EndFunc Func _RegOku($Ad,$Deger,$iStr = 1) $Degisken = RegRead("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad) If $Degisken = "" Then if $iStr = 0 Then $Deger = Number($Deger) RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad,"REG_SZ",$Deger) $Degisken = $Deger Else if $iStr = 0 Then $Degisken = Number($Degisken) EndIf Return $Degisken EndFunc[/code] lang.ini içeriği: [code][t] deger=3 [Spanish] 0=hola 1=este 2=experimento 3=el tutilo de esta [Italian] 0=ciao 1=quesot 2=esperimento 3=il titolo di questo [Türkçe] 0=merhaba 1=bu bir 2=deneme 3=bu da başlık [English] 0=welcome 1=this is an 2=experiment 3=this is a title [Russian] 0=?????? 1=???? 2=??????????? 3=????? ? ???? ??????? [French] 0=bonjour 1=cette 2=exprience 3=le titre de cette[/code] Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 31, 2012 Author Share Posted March 31, 2012 Örneği biraz daha geliştirdim ve daha işlevsel bir hale getirdim: [codebox]Global $dildosyasi = "lang.ini" Dim $nesneler[4] $nesneler[0] = GUICreate("",500,500) $combo = GUICtrlCreateCombo("",20,20,100,20,0x0003) $button = GUICtrlCreateButton("tamam",20,50,100,25) $nesneler[1] = GUICtrlCreateLabel("",20,90,100,20) $nesneler[2] = GUICtrlCreateInput("",20,120,100,21) $nesneler[3] = GUICtrlCreateButton("",20,150,100,25) ; $lang = _RegOku("lang","Türkçe") GUICtrlSetData($combo,_SetLanguage($lang,0),$lang) _DiliYerlestir($nesneler) ; GUISetState() While 1 $nmsg = GUIGetMsg() Switch $nmsg Case -3 Exit Case $button RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil","lang","REG_SZ",GUICtrlRead($combo)) _DiliYerlestir($nesneler) EndSwitch WEnd Func _DiliYerlestir(ByRef $aArray) if not IsArray($aArray) Then Return -1 $dilial = _RegOku("lang","Türkçe") $dilgetir = _SetLanguage($dilial) if Not @error Then for $i = 0 to UBound($aArray)-1 if WinExists($aArray[$i]) Then WinSetTitle($aArray[$i],"",$dilgetir[$i+1]) Else GUICtrlSetData($aArray[$i],$dilgetir[$i+1]) EndIf Next Else SetError(1) Return -2 EndIf EndFunc Func _SetLanguage($dil,$flag = 1) Local $dilvar = 0, $return[1] = [0], $diller = "" if FileExists($dildosyasi) Then $dilvarmi = IniReadSectionNames($dildosyasi) if Not @error Then if $flag Then for $i = 1 to $dilvarmi[0] if $dilvarmi[$i] = $dil Then $dilvar = 1 ExitLoop EndIf Next if $dilvar = 0 Then SetError(3) Return -3 Else $deger = IniRead($dildosyasi,"t","deger",3) ReDim $return[$deger+2] $return[0] = $deger+1 if Not @error Then for $i = 1 to $deger+1 $return[$i] = IniRead($dildosyasi,$dil,$i-1,"") Next SetError(0) Return $return Else SetError(4) Return -4 EndIf EndIf Else for $i = 1 to $dilvarmi[0] if $dilvarmi[$i] <> "t" Then $diller &= $dilvarmi[$i] & "|" Next Return $diller EndIf Else SetError(2) Return -2 EndIf Else SetError(1) Return -1 EndIf EndFunc Func _RegOku($Ad,$Deger,$iStr = 1) $Degisken = RegRead("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad) If $Degisken = "" Then if $iStr = 0 Then $Deger = Number($Deger) RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad,"REG_SZ",$Deger) $Degisken = $Deger Else if $iStr = 0 Then $Degisken = Number($Degisken) EndIf Return $Degisken EndFunc[/codebox] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.