@RSBasic:
Lass mal sein!
Wenn ich nur die Texteingabe in einem String-/Edit-Gadget sperren/aktivieren möchte, kann ich auch einfach:
SetAttribute(Eingabe, "readonly", "readonly")
und
RemoveAttribute(Eingabe, "readonly")
nutzen.
Hier trotzdem mal noch eine kleine SetReadOnly()-Funktion mit kleinem Testcode:
Code:
Global edit0, edit1, btn0, fcolor, bcolor
Procedure SetReadOnly(gid, status) ;Für String-, oder Edit-Gadget
If status > 0
! $(v_gid.div).find("input").attr("readonly", "readonly");
! $(v_gid.div).find("textarea").attr("readonly", "readonly");
ElseIf status <= 0
! $(v_gid.div).find("input").removeAttr("readonly");
! $(v_gid.div).find("textarea").removeAttr("readonly");
EndIf
EndProcedure
Procedure.s ReturnValue(gid) ; Stringrückgabe (beim StringGadget) = GetGadgetText(0)
!return $(v_gid.div).find(".dijitInputInner").val();
EndProcedure
Procedure ChangeValue() ;Testfunktion
If LCase(ReturnValue(edit0)) = "readonly"
SetReadOnly(edit1, #True)
! $(v_btn0.div).find(".dijitButtonContents").css("background-color", "green");
! $(v_btn0.div).find(".dijitButtonContents").css("color", "white");
ElseIf LCase(ReturnValue(edit0)) = "write"
SetReadOnly(edit1, #False)
! $(v_btn0.div).find(".dijitButtonContents").css("background-color", "red");
! $(v_btn0.div).find(".dijitButtonContents").css("color", "black");
EndIf
EndProcedure
OpenWindow(0,0,0,800,600,"Test",#PB_Window_Background)
StringGadget(0, 10, 10, 300, 30, "Hallo")
EditorGadget(1, 10, 45, 600, 600)
ButtonGadget(2, 320, 10, 30, 30, "Set")
edit0 = GadgetID(0)
edit1 = GadgetID(1)
btn0 = GadgetID(2)
fcolor = RGB(255,255,0)
bcolor = RGB(0,0,0)
BindGadgetEvent(2, @ChangeValue())
;Init (Ein bisschen Styling)
! $(v_edit0.div).find(".dijitTextBox").css("border-radius", "20px");
! $(v_edit0.div).find(".dijitInputInner").val("Gebe ReadOnly oder Write ein.");
! $(v_edit0.div).find(".dijitTextBox").css("color", spider_helper_ColorToHtml(v_fcolor));
! $(v_edit0.div).find(".dijitTextBox").css("background-color", spider_helper_ColorToHtml(v_bcolor));
! $(v_btn0.div).find(".dijitButtonContents").css("border-radius", "50px");
! $(v_btn0.div).find(".dijitButtonNode").css("border-radius", "50px");
! $(v_btn0.div).find(".dijitButtonContents").css("background-color", "red");