1. sayfa (Toplam 1 sayfa)
Tema Kaydetme
Gönderilme zamanı: 10 Ara 2017, 12:20
gönderen darendeli
Programa 1 kactane Tema Ekleyecegim..Hangi Tema Secilirse O tema Kayıtlansın istiyorum Reg Kaydını Nasıl Yaptırmam Gerek..
Kod: Tümünü seç
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <File.au3>
#include "_UskinLibrary.au3"
_LoadGUI()
While True
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
_SwitchTheme(GUICtrlRead($Combo1))
EndSwitch
WEnd
Func _LoadGUI()
Global $GUI = GUICreate("Darendeli Temalar")
GUICtrlCreateLabel("Tema seçiniz:", 10, 10, 100, 30)
Global $Combo1 = GUICtrlCreateCombo("", 100, 10, 100, 30, $CBS_DROPDOWNLIST)
_LoadThemeList()
GUISetState()
EndFunc
Func _LoadThemeList()
Local $sComboData, $sParam = "", $aThemes = _FileListToArray(@ScriptDir & "\Themes", "*.msstyles")
If Not @error Then
For $i = 1 To $aThemes[0]
$sComboData = $sComboData & "|" & _PathSplit($aThemes[$i], $sParam, $sParam, $sParam, $sParam)[3]
Next
GUICtrlSetData($Combo1, $sComboData)
EndIf
EndFunc
Func _SwitchTheme($sTheme)
GUIDelete($GUI)
_USkin_Exit()
_Uskin_LoadDLL()
_USkin_Init(@ScriptDir & "\Themes\" & $sTheme & ".msstyles")
_LoadGUI()
EndFunc
Re: Tema Kaydetme
Gönderilme zamanı: 11 Ara 2017, 11:25
gönderen BlueLife
@darendeli
Kısaca bir reg anahtarı keyi vs. belirler, RegWrite ile seçimi kayıt edip, RegRead ile de önceden kayıt etmiş ayarı okutabilirsin.
Örneğinde ufak düzeltme yaptım. Kurcalarsın...
Kod: Tümünü seç
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <File.au3>
#include "_UskinLibrary.au3"
Global $GUI,$Combo1
_LoadGUI()
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
_SwitchTheme(GUICtrlRead($Combo1))
EndSwitch
WEnd
Func _LoadGUI()
$GUI = GUICreate("Darendeli Temalar",300,500)
GUICtrlCreateLabel("Tema seçiniz:", 10, 10, 100, 30)
$Combo1 = GUICtrlCreateCombo("", 100, 10, 100, 30, $CBS_DROPDOWNLIST)
_LoadThemeList()
GUISetState()
EndFunc
Func _LoadThemeList()
Local $sComboData , $aThemes = _FileListToArray(@ScriptDir & "\Themes", "*.msstyles")
Local $ThemeExt = ".msstyles"
Local $tExtLen = StringLen($ThemeExt)
Local $RegTheme = RegRead("HKEY_CURRENT_USER\Software\MyProgram","MyTheme")
If IsArray($aThemes) Then
For $i = 1 To $aThemes[0]
$aThemes[$i] = StringTrimRight($aThemes[$i],$tExtLen)
$sComboData &= $aThemes[$i] & "|"
If StringLen($RegTheme) = 0 Then $RegTheme = $aThemes[$i]
Next
If StringInStr("|" & $sComboData,"|" & $RegTheme & "|") = 0 THen $RegTheme = $aThemes[1]
GUICtrlSetData($Combo1, $sComboData,$RegTheme)
_LoadTheme($RegTheme)
EndIf
EndFunc
Func _SwitchTheme($sTheme)
GUIDelete($GUI)
_USkin_Exit()
_LoadTheme($sTheme)
_LoadGUI()
EndFunc
Func _LoadTheme($sTheme)
_Uskin_LoadDLL()
_USkin_Init(@ScriptDir & "\Themes\" & $sTheme & ".msstyles")
RegWrite("HKEY_CURRENT_USER\Software\MyProgram","MyTheme", "REG_SZ", $sTheme)
EndFunc
Re: Tema Kaydetme
Gönderilme zamanı: 11 Ara 2017, 12:15
gönderen darendeli
Örnegi Denedim gui nin Altı Cok uzun oluyor..ilk acılısta Sonra Baska Tema Secilince Düzeliyor Anca
Re: Tema Kaydetme
Gönderilme zamanı: 12 Ara 2017, 10:36
gönderen BlueLife
@darendeli
Gui oluşturmadan önce temayı etkinleştirirsen sorunun çözülecektir büyük ihtimal. Kurcalarsın.
Kod: Tümünü seç
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <File.au3>
#include "_UskinLibrary.au3"
Global $GUI,$Combo1
_LoadGUI()
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
_SwitchTheme(GUICtrlRead($Combo1))
EndSwitch
WEnd
Func _LoadGUI()
Local $ThemeList = _LoadThemeList()
_LoadTheme($ThemeList[1])
$GUI = GUICreate("Darendeli Temalar",300,500)
GUICtrlCreateLabel("Tema seçiniz:", 10, 10, 100, 30)
$Combo1 = GUICtrlCreateCombo("", 100, 10, 100, 30, $CBS_DROPDOWNLIST)
GUICtrlSetData($Combo1, $ThemeList[0],$ThemeList[1])
GUISetState()
EndFunc
Func _LoadThemeList()
Local $aThemes = _FileListToArray(@ScriptDir & "\Themes", "*.msstyles")
Local $ThemeExt = ".msstyles"
Local $tExtLen = StringLen($ThemeExt)
Local $sComboData[2] = ['',RegRead("HKEY_CURRENT_USER\Software\MyProgram","MyTheme")]
If IsArray($aThemes) Then
For $i = 1 To $aThemes[0]
$aThemes[$i] = StringTrimRight($aThemes[$i],$tExtLen)
$sComboData[0] &= $aThemes[$i] & "|"
If StringLen($sComboData[1]) = 0 Then $sComboData[1] = $aThemes[$i]
Next
If StringInStr("|" & $sComboData[0],"|" & $sComboData[1] & "|") = 0 THen $sComboData[1] = $aThemes[1]
EndIf
Return $sComboData
EndFunc
Func _SwitchTheme($sTheme)
GUIDelete($GUI)
_USkin_Exit()
_LoadTheme($sTheme)
_LoadGUI()
EndFunc
Func _LoadTheme($sTheme)
If StringLen($sTheme) = 0 Then Return 0
_Uskin_LoadDLL()
_USkin_Init(@ScriptDir & "\Themes\" & $sTheme & ".msstyles")
RegWrite("HKEY_CURRENT_USER\Software\MyProgram","MyTheme", "REG_SZ", $sTheme)
EndFunc