Seite 15 von 18

Verfasst: 07.02.2006 14:55
von ts-soft
AND51 hat geschrieben:Dass es #PB_String_MultiLine nicht mehr gibt, kann man anscheinen nur mit einem EditorGadget() umgehen; allerdings: Wenn ich das StringGadget() so hoch mache, dass nur drei Zeilen reinpassen, wie kriege ich denn künftig den Effekt hin?
Probier mal: #ES_MULTILINE

Verfasst: 07.02.2006 14:56
von Batze
Wie kann ich dann eigentlich mit Enter die Eingabe in ein Stringgadget bestätigen?

Verfasst: 07.02.2006 15:13
von ts-soft
Am besten mit nem KeyBoardShortcut, oder per API

Verfasst: 07.02.2006 15:28
von Batze
Ach so, danke.

Beispiel

Verfasst: 07.02.2006 16:04
von Bamsagla
Hallo Batze,
bin mir nicht sicher, ob du sowas meinst, aber hier mal ein improvisiertes Beispiel. Lauffähig unter PB 4.00b1 und getestet unter Windows 2000.

Code: Alles auswählen

If OpenWindow(100,0,0,300,170,#PB_Window_ScreenCentered|#PB_Window_Invisible|#PB_Window_SystemMenu,"Stringgadget mit Enter bestätigen")
  If CreateGadgetList(WindowID(100))
    StringGadget(10,10,10,200,20,"Testdaten mit Enter bestätigen.")
    ButtonGadget(20,220,10,70,20,"Absenden")
    StringGadget(30,10,40,200,20,"",#PB_String_ReadOnly)
    ButtonGadget(40,220,40,70,20,"Feld leeren")
    EditorGadget(50,10,70,280,90)
  EndIf
  AddGadgetItem(50,-1,"Wenn der Cursor im Eingabefeld links oben steht,")
  AddGadgetItem(50,-1,"kann man die Eingabe mit Enter übermitteln.")
  AddGadgetItem(50,-1,"Steht der Cursor auf irgend einem anderen Gadget,")
  AddGadgetItem(50,-1,"so wird die Enter-Taste ignoriert.")
  AddKeyboardShortcut(100,#PB_Shortcut_Return,10)
  AddKeyboardShortcut(100,#PB_Shortcut_Execute,20)
  HideWindow(100,0)
  Repeat
    Select WindowEvent()
      Case #PB_Event_CloseWindow
        Ende=1
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 20
            SetGadgetText(30,GetGadgetText(10))
          Case 40
            SetGadgetText(30,"")
        EndSelect
      Case #PB_Event_Menu
        Select EventMenu()
          Case 10,20
            Tastentest=getfocus_()
            If Tastentest=GadgetID(10)
              SetGadgetText(30,GetGadgetText(10))
            EndIf
        EndSelect
      Case 0
        Delay(1)
    EndSelect
  Until Ende=1
EndIf
Falls das am Thema vorbei ging, sorry. Ansonsten spiel mal bisschen damit rum, bis das Ergebnis brauchbar ist.

Verfasst: 07.02.2006 16:09
von Batze
So ähnlich wie du hab ichs laut ts-softs Tip gemacht. Trotzdem danke für das Beispiel, können bestimmt noch andere gebrauchen. :allright:

Ach ja, warum weißt du #PB_Shortcut_Return und #PB_Shortcut_Execute nicht die selbe MenuID zu?

Verfasst: 07.02.2006 16:14
von freedimension
Batze hat geschrieben:So ähnlich wie du hab ichs laut freedimensions Tip gemacht.
Du meinst nicht wirklich mich, oder? Du redest hier sicherlich von ts-soft?

Verfasst: 07.02.2006 16:21
von Batze
ja, aber du hättest es sicher auch gewußt. :oops:

Verfasst: 07.02.2006 16:26
von ts-soft
Batze hat geschrieben:ja, aber du hättest es sicher auch gewußt. :oops:
Hauptsache Du verwechselt da nichts, wenn einer was falsches Postet :mrgreen:

Verfasst: 07.02.2006 16:41
von NicTheQuick
@Bamsagla:
Diese beiden Zeilen

Code: Alles auswählen

Tastentest=getfocus_() 
  If Tastentest=GadgetID(10) 
sind jetzt auch hervorragend ersetzbar durch diese eine:

Code: Alles auswählen

If GetActiveGadget()=10
Und vor allem viel besser portabel.