Seite 1 von 1
Eingabebeschränkung bei StringGadget()
Verfasst: 06.01.2005 13:12
von Thomas Kühn
Hallo zusammen,
ich möchte verhindern, dass in ein StringGadget() bestimmte Zeichen
eingegeben werden können.
Ich suche eine ähnliche Funktionalität wie #PB_String_Numeric.
Wer kann mir da helfen?
Gruss
Thomas
Verfasst: 06.01.2005 19:23
von Buggymonkey
Hi,
also wenn es wirklich keine andere lösung gibt würde ich mal dies probieren:
Code: Alles auswählen
....
Repeat
...
if len(getgadgettext(#stringgadget))>Zahl123
setgadgettext(#stringgadget,left(getgadgettext(#stringgadget),Zahl123))
endif
...
Until
...
ich habe den code nicht getestet müste aba gehn
Gruß Nils
Verfasst: 06.01.2005 20:31
von Thomas Kühn
Hi Nils,
danke fuer die Info.
Das Problem mit SetGadgetText() ist, dass dann der Eingabecursor am Anfang der Eingabe steht. Beim Weitereingeben wird dann vorn eingetippt.
Ich moechte bereits waehrend der Eingabe verhindern, dass ein entsprechendes Zeichen eingegeben werden kann.
Gruss
Thomas
Verfasst: 06.01.2005 20:41
von ts-soft
Vielleicht kannste per Callback das #WM_KEYDOWN ereignis abfangen, und dort Deine Korrektur einbauen. Gibt es glaub sogar Beispiele im CodeArchiv. Bin mir aber nicht sicher
Verfasst: 07.01.2005 12:33
von Thomas Kühn
Hallo,
ein Beispiel zu #WM-KeyDown habe ich noch nicht gefunden.
Ich hab's mal mit diesem Code versucht:
If OpenWindow(0, 50, 50, 300, 200, #PB_Window_ScreenCentered|#PB_Window_SystemMenu, "TEST")
If CreateGadgetList(WindowID(0))
TextGadget(0, 20, 20, 100, 200, "Eingabentest:")
StringGadget(1, 20, 50, 150, 60, "", #PB_String_Multiline)
ButtonGadget(2, 20, 150, 100, 30, "TEST")
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadgetID()
Case 1
If FindString(GetGadgetText(1), "#", 1)<>0
SetGadgetText(1, RemoveString(GetGadgetText(1), "#", 1))
EndIf
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
EndIf
EndIf
End
Damit kann ich das # Zeichen abfangen.
Schwierig ist nur, dass der Cursor zum Anfang des Stringgadget spring.
Gibt es eine Moeglichkeit, den Cursor im Stringgadget zu positionieren?
Gruss
Thomas
Re: Eingabebeschränkung bei StringGadget()
Verfasst: 07.01.2005 12:57
von Kiffi
> ich möchte verhindern, dass in ein StringGadget() bestimmte Zeichen
> eingegeben werden können.
http://www.purearea.net/pb/CodeArchiv/G ... erInput.pb
Grüße ... Kiffi
Verfasst: 07.01.2005 13:03
von Thomas Kühn
Hi,
werde den Code mal ausprobieren.
Danke
Gruss
Thomas

Code hat noch ein Bug
Verfasst: 07.01.2005 14:05
von Donald
Hi, habe mir auch mal den Code geladen
(StringGadget_FilterInput.pb), da ich den
in mein Programm gut einbauen könnte.
ändert mal die Zeile 84 ab:
statt - ActivateGadget(#StringID1)
mal - ActivateGadget(#StringID2)
Sobald das zu Filternde Feld als erstes Aktiv ist
wird das erste eingegeben Zeichen nicht gefiltert.