Entertaste mit Problemen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Entertaste mit Problemen

Beitrag von Velindos »

Hallo,
habe in mein Programm eine Entertasten Funktion für ein Stringgadget eingebaut, funktioniert.
Nun habe ich meine Event auf den Aufruf eingestellt und habe nun im Editorgadget den Effekt, das ich Text eingeben kann aber wenn ich mit dem Cursor zurück gehe und einen Text hineinschreibe springt dieser bei Enter Eingabe immer an die letzte Zeile!

Code: Alles auswählen

Enumeration ; Windows
  #myWindow
EndEnumeration
Enumeration ; Gadgets
  #myStringGadget_MitReturn
  #myStringGadget_OhneReturn
EndEnumeration
Enumeration ; Menu-/Toolbaritems
  #myWindowShortcutReturn
EndEnumeration

OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 320, 300, "")

StringGadget(#myStringGadget_MitReturn,  10, 10, 300, 20,"ENRE")
EditorGadget(#myStringGadget_OhneReturn, 10, 150, 300, 120)

AddKeyboardShortcut(#myWindow, #PB_Shortcut_Return, #myWindowShortcutReturn)

Repeat
 
  Select WaitWindowEvent()
     
    Case #PB_Event_Menu
      Select EventMenu()
        Case #myWindowShortcutReturn
          If GetActiveGadget()=#myStringGadget_MitReturn
            MessageRequester("", "Enter")
          EndIf
          If GetActiveGadget()=#myStringGadget_OhneReturn
            SetActiveGadget(#myStringGadget_OhneReturn)
            AddGadgetItem(#myStringGadget_OhneReturn, -1,"")
          EndIf

          
          
      EndSelect
     
    Case #PB_Event_CloseWindow
      Quit=#True
     
  EndSelect
 
Until Quit = #True
Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Entertaste mit Problemen

Beitrag von Pelagio »

Guten Abend Velindos,

du musst dem Programm sagen das, wenn Dein StringGadget den Focus hat die Funktionstaste gilt. Wenn der Focus allerdings nicht mehr vorhanden ist, die Funktionstaste 'Außer Betrieb' ist. Hierfür benutzt Du AddKeyboardShortcut und RemoveKeyboardShortcut. Ich war so frei dein Beispiel um zu schreiben:

Code: Alles auswählen

Enumeration ; Windows
  #myWindow
EndEnumeration
Enumeration ; Gadgets
  #myStringGadget_MitReturn
  #myStringGadget_OhneReturn
EndEnumeration
Enumeration ; Menu-/Toolbaritems
  #myWindowShortcutReturn
EndEnumeration

OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 320, 300, "")

StringGadget(#myStringGadget_MitReturn,  10, 10, 300, 20,"ENRE")
EditorGadget(#myStringGadget_OhneReturn, 10, 150, 300, 120)

Repeat
   Select WaitWindowEvent()
      Case #PB_Event_Gadget
         If (EventGadget()=#myStringGadget_MitReturn)
            Select EventType()
               Case #PB_EventType_Focus
                  AddKeyboardShortcut(#myWindow, #PB_Shortcut_Return, #myWindowShortcutReturn)
               Case #PB_EventType_LostFocus
                  RemoveKeyboardShortcut(#myWindow, #PB_Shortcut_Return)
            EndSelect
         EndIf
      Case #PB_Event_Menu
         If EventMenu()=#myWindowShortcutReturn And GetActiveGadget()=#myStringGadget_MitReturn
            MessageRequester("", "Enter")
         EndIf
    Case #PB_Event_CloseWindow
      Quit=#True
  EndSelect
Until Quit
:allright:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Entertaste mit Problemen

Beitrag von Velindos »

Hallo Pelagio,
Danke für deinen Tip und das Beispiel, da habe ich meine Enterroutine ja gänzlich falsch aufgebaut.
Funktioniert genau so wie ich will, also nochmals Danke für deine Unterstützung.
Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten