Gibt es eine Möglichkeit ein Eingabefeld (Edit, Input,...) inaktiv zu machen? So das man nicht hineinklicken kann.
Mit "disable" ginge das zwar, dann wird der Text darin allerdings ausgegraut dargestellt. Was nicht so schön ist.
Gibt es eine Möglichkeit ein Eingabefeld (Edit, Input,...) inaktiv zu machen? So das man nicht hineinklicken kann.
Mit "disable" ginge das zwar, dann wird der Text darin allerdings ausgegraut dargestellt. Was nicht so schön ist.
Es gibt noch den $ES_READONLY Style. Allerdings weiß ich nicht ob dieser die farben ändert. Du musst sonst die Farben selber dem Control zuweisen.
Oder hat jemand eine andere Idee?
Du kannst auch ein durchsichtiges Fenster darüberlegen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("Test", 320, 240)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$cEdit = GUICtrlCreateEdit("Edit", 10, 10, 300, 100)
$cInput = GUICtrlCreateInput("Input", 10, 120, 300, 20)
$cButton1 = GUICtrlCreateButton("Button 1", 10, 210, 145, 20)
GUICtrlSetOnEvent($cButton1, "_SetEditText")
$cButton2 = GUICtrlCreateButton("Button 2", 165, 210, 145, 20)
GUICtrlSetOnEvent($cButton2, "_SetInputText")
GUICtrlSetState($cButton1, $GUI_FOCUS)
[/autoit] [autoit][/autoit] [autoit]$hGuiNF1 = GUICreate("sdf", 300, 100, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
WinSetTrans($hGuiNF1, "", 1)
GUISetState(@SW_DISABLE, $hGuiNF1)
GUISetState(@SW_SHOW, $hGuiNF1)
$hGuiNF2 = GUICreate("sdf", 300, 20, 10, 120, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
WinSetTrans($hGuiNF2, "", 1)
GUISetState(@SW_DISABLE, $hGuiNF2)
GUISetState(@SW_SHOW, $hGuiNF2)
GUISetState(@SW_SHOW, $hGui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While Sleep(100)
WEnd
Func _SetEditText()
Local $sText = ""
For $i = 1 To Random(5, 20, 1)
$sText &= Chr(Random(65, 90, 1))
Next
GUICtrlSetData($cEdit, $sText)
EndFunc ;==>_SetEditText
Func _SetInputText()
Local $sText = ""
For $i = 1 To Random(5, 20, 1)
$sText &= Chr(Random(65, 90, 1))
Next
GUICtrlSetData($cInput, $sText)
EndFunc ;==>_SetInputText
Func _Exit()
Exit
EndFunc ;==>_Exit
E
Etwas einfacher wäre einfach die Hintergrundfarbe zu ändern:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$hGui = GUICreate("Test", 320, 140)
$idEdit = GUICtrlCreateEdit("Edit", 10, 10, 300, 100)
$idBtnEdit = GUICtrlCreateButton("&Editierbar", 10, 115, 145, 20)
$idBtnNoEdit = GUICtrlCreateButton("&Nicht Eitierbar", 165, 115, 145, 20)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
case $GUI_EVENT_CLOSE
Exit
case $idBtnEdit
GUICtrlSetStyle($idEdit,$GUI_SS_DEFAULT_EDIT)
GUICtrlSetBkColor($idEdit,0xFFFFFF)
case $idBtnNoEdit
GUICtrlSetStyle($idEdit,$ES_READONLY)
GUICtrlSetBkColor($idEdit,0xFFFFFA)
EndSwitch
WEnd
[/autoit]Wobei ich allerdings der Meinung bin dass der Anwender auch mitbekommen soll wo Eingaben erlaubt sind und wo nicht deshalb die leichte Farbabweichung,
mfg autoBert