Seite 1 von 1

[4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 25.09.2010 13:00
von mbuettner
Hallo,

wie kann man ein zuvor aktiviertes StringGadget wieder auf ReadOnly ersetzen? Im Code Archiv habe ich nur ein Beispiel für Windows gefunden, und das geht ja bekannterweise nicht unter Linux.

MfG
Markus

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 27.09.2010 09:01
von Shardik
So geht es auch unter Linux:

Code: Alles auswählen

OpenWindow(0, 0, 0, 220, 70, "StringGadget-Demo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 10, 10, WindowWidth(0) - 20, 20, "")
ButtonGadget(1, 10, WindowHeight(0) - 30, WindowWidth(0) - 20, 23, "Text-Eingabe unterbinden")
SetActiveGadget(0)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      If EventGadget() = 1
        If gtk_editable_get_editable_(GadgetID(0))
          gtk_editable_set_editable_(GadgetID(0), #False)
          SetGadgetText(1, "Text-Eingabe unterbinden")
        Else
          gtk_editable_set_editable_(GadgetID(0), #True)
          SetGadgetText(1, "Text-Eingabe erlauben")
        EndIf        
      EndIf
  EndSelect
ForEver

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 11.11.2010 16:24
von mbuettner
Der Compiler spuckt mir folgende Meldung aus:
Zeile 129: gtk_editable_get_editable_() is not a function (or not available in demo version), macro, array or linked list.

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 11.11.2010 16:55
von Kiffi
mbuettner hat geschrieben:Der Compiler spuckt mir folgende Meldung aus:
Bild

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 11.11.2010 17:07
von Vera
@Shardik
wiedermal ~ Danke :)

@mbuettner
vielleicht hilft Dir dieser Trick bei der Demoversion ;)

Code: Alles auswählen

OpenWindow(0, 0, 0, 220, 70, "StringGadget-Demo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 10, 10, WindowWidth(0) - 20, 20, "hallo")
ButtonGadget(1, 10, WindowHeight(0) - 30, WindowWidth(0) - 20, 23, "Text-Eingabe unterbinden", #PB_Button_Toggle)
SetActiveGadget(0)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      If EventGadget() = 1  And GetGadgetState(1) = 1 
        FreeGadget(0)
        StringGadget(0, 10, 10, WindowWidth(0) - 20, 20, "read only",  #PB_String_ReadOnly)
        SetGadgetText(1, "Text-Eingabe erlauben")
      EndIf
      
      If EventGadget() = 1  And GetGadgetState(1) = 0 
        FreeGadget(0)
        StringGadget(0, 10, 10, WindowWidth(0) - 20, 20, "editable again")
        SetGadgetText(1, "Text-Eingabe unterbinden")
      EndIf       
  EndSelect
ForEver 
nun mußst Du nur noch, schon vorhandene Einträge übertragen, falls notwendig

Gruß ~ Vera

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 11.11.2010 18:12
von mbuettner
@Kiffi:
Das komische ist aber, dass das ein API-Befehl ist, oder sind die generell nicht bei der Demoversion verfügbar?
@Vera:
Danke, werde ich gleich mal ausprobieren.

Re: [4.51] Eingabefeld auf ReadOnly setzen

Verfasst: 11.11.2010 19:00
von rolaf
mbuettner hat geschrieben:Das komische ist aber, dass das ein API-Befehl ist, oder sind die generell nicht bei der Demoversion verfügbar?
Das ist nicht komisch, sondern das ist des Pudels Kern. :wink: