Iniread + Guictrlsetstate

11/12/2011 15:48 Ludder231#1
Hi,

Ich hab ein kleines Problem, undzwar will ich in meiner While schleife immer abfragen ob in einer ini ein bestimmter Eintrag auf "1" steht. Wenn er auf "0" ist dann soll sich die ComboBox disbablen. Aber wenn ich jetzt:
PHP Code:
[...]
EndSwitch

If 
IniRead(@scriptdir&"\OptionaleEinstellungen.ini""Aufgaben""Trainieren""Error") = "0" then
    GUICtrlSetState
($Combo1$GUI_Disable)
endif
    
WEnd
[...] 
mache dann blinkt die ComboBox ja so weil er den Zustand der Box immerwieder ganz schnell auf Disabled macht. Nur soll er es nur 1 mal ändern. Anderstum genau so(GUI_Enabled + auf "1"). Jemand ne idee?

MfG Ludder231
11/12/2011 16:22 Njahs#2
versuchs mal mit
PHP Code:
[...]
EndSwitch
$iniread IniRead(@scriptdir&"\OptionaleEinstellungen.ini""Aufgaben""Trainieren""")
If 
$iniread "0" then
    GUICtrlSetState
($Combo1$GUI_Disable)
endif
    
WEnd
[...] 
11/12/2011 17:20 Ludder231#3
Quote:
Originally Posted by Njahs View Post
versuchs mal mit
PHP Code:
[...]
EndSwitch
$iniread IniRead(@scriptdir&"\OptionaleEinstellungen.ini""Aufgaben""Trainieren""")
If 
$iniread "0" then
    GUICtrlSetState
($Combo1$GUI_Disable)
endif
    
WEnd
[...] 
Das macht genau das gleiche wie meins.
11/12/2011 18:30 Freddy​#4
Ist es denn wichtig, dass das in der Schleife gemacht wird? ich würde es dir empfehlen es am Anfang des Scriptes bzw. nach der GUI abzufragen
11/12/2011 19:49 YunoSubs#5
While 1
If IniRead(@scriptdir&"\OptionaleEinstellungen.ini", "Aufgaben", "Trainieren", "") = 0 Then
GUICtrlSetState($Combo1, $GUI_Disable)
EndIf
If IniRead(@scriptdir&"\OptionaleEinstellungen.ini", "Aufgaben", "Trainieren", "") = 1 Then
GUICtrlSetState($Combo1, $GUI_Enable)
EndIf
$x = 2 ;IniWrite benutzen und den Wert auf 2 setzen
WEnd
11/12/2011 20:01 lolkop#6
am besten wäre es den aktuellen status (guigetstate) in der ini zu speichern.

in deiner schleife checkst du dann jeweils ob der eintrag der ini sich von dem im gui unterscheidet.
ist das der fall, so änderst du das gui, sonst nicht.
11/13/2011 13:20 Ludder231#7
Hmm ich hab mir mal wie lolkop gesagt hat guigetstate angeguckt, dabei ist das rausgekommen:
PHP Code:
[...]$TrainierenStatus IniRead(@scriptdir&"\OptionaleEinstellungen.ini""Aufgaben""Trainieren""Error")
$ComboState GUICtrlGetState($Combo1)

if 
$TrainierenStatus <> "1" then
    
if $ComboState 80 Then
        GUICtrlSetData
($Combo1"Wähle")
        
GUICtrlSetState($Combo1$gui_disable)
        
    endif
    
ElseIf 
$TrainierenStatus "1" Then
    
if $ComboState 144 Then
        GUICtrlSetState
($Combo1$gui_enable)
    endif
    
endif
[...] 
Funktioniert super....