Hi,
ich es möglich den Typ eines Control zu ändern als zum Beispiel ein Label in ein Editfeld umändern? Wenn ja ist es dann möglich das die Control-ID die gleiche bleibt?
Hi,
ich es möglich den Typ eines Control zu ändern als zum Beispiel ein Label in ein Editfeld umändern? Wenn ja ist es dann möglich das die Control-ID die gleiche bleibt?
irgendwie könnte man das denke ich schon hinbasteln aber vllt tust du dich mit den styles leichter.
label zu edit würde z.B. so gehen.
#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate("", 260, 80)
$edit = GUICtrlCreateEdit("Input1", 8, 8, 240, 20, 0, 0)
$button = GUICtrlCreateButton("Button1", 8, 40, 240, 30)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
If Bitand(GUICtrlGetState($edit), $GUI_DISABLE) = $GUI_DISABLE Then
GUICtrlSetState($edit, $GUI_ENABLE)
Else
GUICtrlSetState($edit, $GUI_DISABLE)
EndIf
EndSwitch
WEnd
Das ist natürlich auch eine Idee, kann man das irgendwie verhindern das die Schrift dann grau wird?
oh stimmt.
dann würd ich den style $ES_READONLY verwenden
Mh funktioniert irgendwie nicht so ganz. Wie kann ich den den aktuelle Style einen Controllers erfragen. GUICtrlGetStyle gibt es ja leider nicht. Hab bis jetzt:
[autoit]#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
GUICreate("", 260, 80)
$edit = GUICtrlCreateEdit("Input1", 8, 8, 240, 20, 0, 0)
$button = GUICtrlCreateButton("Button1", 8, 40, 240, 30)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
If Hier prüfen ob $ES_READONLY gesetzt wurde Then
GUICtrlSetStyle("",-1,$edit)
Else
GUICtrlSetStyle($ES_READONLY,-1,$edit)
EndIf
EndSwitch
WEnd
reicht dir die lösung mit nem boolean?
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
GUICreate("", 260, 80)
$edit = GUICtrlCreateEdit("Input1", 8, 8, 240, 20, 0, 0)
$button = GUICtrlCreateButton("Button1", 8, 40, 240, 30)
GUISetState(@SW_SHOW)
Local $boolean = True
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
If $boolean Then
GUICtrlSetStyle($edit,$ES_READONLY)
Else
GUICtrlSetStyle($edit,0)
EndIf
$boolean = Not $boolean
EndSwitch
WEnd
Ne leider nicht, da ich keine Feste Anzahl an Edit/Label-Feldern habe.Wäre es möglich das man bei dem Buttonklick das Editfeld beschreibbar macht und beim Focusverlust/betätigen der Entertaste wieder unbeschreibbar?