Eingabebeschränkung bei StringGadget()

Für allgemeine Fragen zur Programmierung mit PureBasic.
Thomas Kühn
Beiträge: 15
Registriert: 06.01.2005 12:58
Wohnort: Stuttgart

Eingabebeschränkung bei StringGadget()

Beitrag 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
Benutzeravatar
Buggymonkey
Beiträge: 47
Registriert: 02.09.2004 19:36
Wohnort: Löhne
Kontaktdaten:

Beitrag 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
wenn wer rechtschreibfehler findet, kann er sie behalten, :)

Ich würde gern die Welt verändern,
doch Gott gibt mir den Quellcode nicht!

http://www.house-of-chat.de umbedingt mal vorbei schaun ^^
Thomas Kühn
Beiträge: 15
Registriert: 06.01.2005 12:58
Wohnort: Stuttgart

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Thomas Kühn
Beiträge: 15
Registriert: 06.01.2005 12:58
Wohnort: Stuttgart

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Eingabebeschränkung bei StringGadget()

Beitrag 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
Thomas Kühn
Beiträge: 15
Registriert: 06.01.2005 12:58
Wohnort: Stuttgart

Beitrag von Thomas Kühn »

Hi,

werde den Code mal ausprobieren.

Danke

Gruss
Thomas :allright:
Benutzeravatar
Donald
Beiträge: 307
Registriert: 03.01.2005 02:21
Wohnort: Marl

Code hat noch ein Bug

Beitrag 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.
DONALD :D www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite
Antworten