Deutsch
Forum

Edit Eingabe alphanum num alpha

 

Ernst
Edit-Eingabe einschränken auf bestimmte gewünschte Zeichen, alphanumerisch, nur Ziffern, nur Buchstaben + sostige Zeichen
Var __edE& = 0' ( 0 = alphanumerisch / 1 = numerisch  / 2 = aplpha )
Var AlphaNum$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,.%()/ "' Eingabe eingeschränkt auf vorhandene Zeichen

Proc Edit_EingabeAuswertung

    Declare txt$

    Select InStr(right$(gettext$(Edit&),1),AlphaNum$)

        CaseOf  1,2,3,4,5,6,7,8,9,10

        IF __edE&=2

            txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
            settext Edit&, txt$
            sendmessage(Edit&,$B1,len(txt$),len(txt$))

        endif

        CaseOf > 10

        IF __edE&=1

            txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
            settext Edit&, txt$
            sendmessage(Edit&,$B1,len(txt$),len(txt$))

        endif

        otherwise
        txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
        settext Edit&, txt$
        sendmessage(Edit&,$B1,len(txt$),len(txt$))

    EndSelect

EndProc

' -----------------------------------------------------------
windowstyle 8 + 512
Window 200,200-500,300
CLS RGB(212,210,200)
Var Edit& = Create("Edit",%hwnd,"",20,100,200,20)
setstyle Edit&,getstyle(Edit&) + $8
Var b_1&= Create("Button",%hwnd,"alphanum",10,150,80,30)
Var b_2&= Create("Button",%hwnd,"num",120,150,80,30)
Var b_3&= Create("Button",%hwnd,"alpha",230,150,80,30)
Var txt_1& = Create("TEXT",%hwnd,"alphanum",20,60,80,30)
Var txt_2& = Create("TEXT",%hwnd,"",100,60,200,30)
setfocus(Edit&)

While 1

    Waitinput

    IF %key = 2

        break

    ElseIf %key = 13

        settext txt_2&, gettext$(Edit&)
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_1&)

        __edE& = 0
        settext txt_1&, "alphanum"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_2&)

        __edE& = 1
        settext txt_1&, "         num"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_3&)

        __edE& = 2
        settext txt_1&, "alpha"
        setfocus(Edit&)
        settext Edit&, ""

    EndIf

    Edit_EingabeAuswertung

EndWhile

 
26.04.2016  
 




RudiB.


klappt noch nicht so ganz....aber sonst super...

22 kB
Hochgeladen:27.04.2016
Ladeanzahl146
Herunterladen
 
FreeProfan
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
27.04.2016  
 




Ernst
wie ist das bei dir zustandegekommen ?
ich hab's zig-mal durchprobiert (auch über xpse) - keine Fehler.
FreeProfan / FreeProfan Interpreter 0.9-32 (am Interpreter kann's doch nicht liegen)
hast irgendeine Vermutung was faul ist oder sein könnte ??
 
27.04.2016  
 




funkheld
Bei mir klappt es fehlerfrei mit XPSE.
XprofanX3

Liegt am Freeprofan.

Gruss
 
27.04.2016  
 



@ernst: Vmtl. strg+v etc.,

vlt. könnte eine usermessage wm_keydown = 256 Abhilfe schaffen,
zur Not auch waitinput 333 testen.
 
27.04.2016  
 




Ernst
Hallo If
Vermutlich = Bingo
sobald ich mit strg+v mehr als einen Buchstaben einfüge, wird der letzte gelöscht, aber die anderen sind drin
wie bekomm ich den Schmarren weg
mit usermessage bzw. waitinput komme ich nicht weiter

mit iskey-Abfrage kann ich das Einfügen per strg+v verhindern, aber z.B. nicht rechte Maustaste / einfügen
Var __edE& = 0' ( 0 = alphanumerisch / 1 = numerisch  / 2 = aplpha )
Var AlphaNum$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,.%()/ "' Eingabe eingeschränkt auf vorhandene Zeichen

Proc Edit_EingabeAuswertung

    Declare txt$

    Select InStr(right$(gettext$(Edit&),1),AlphaNum$)

        CaseOf  1,2,3,4,5,6,7,8,9,10

        IF __edE&=2

            txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
            settext Edit&, txt$
            sendmessage(Edit&,$B1,len(txt$),len(txt$))

        endif

        CaseOf > 10

        IF __edE&=1

            txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
            settext Edit&, txt$
            sendmessage(Edit&,$B1,len(txt$),len(txt$))

        endif

        otherwise
        txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
        settext Edit&, txt$
        sendmessage(Edit&,$B1,len(txt$),len(txt$))

    EndSelect

EndProc

' -----------------------------------------------------------
windowstyle 8 + 512
Window 200,200-500,300
CLS RGB(212,210,200)
Var Edit& = Create("Edit",%hwnd,"",20,100,200,20)
setstyle Edit&,getstyle(Edit&) + $8
Var b_1&= Create("Button",%hwnd,"alphanum",10,150,80,30)
Var b_2&= Create("Button",%hwnd,"num",120,150,80,30)
Var b_3&= Create("Button",%hwnd,"alpha",230,150,80,30)
Var txt_1& = Create("TEXT",%hwnd,"alphanum",20,60,80,30)
Var txt_2& = Create("TEXT",%hwnd,"",100,60,200,30)
setfocus(Edit&)
Var E_txt$ =""

While 1

    E_txt$ = gettext$(Edit&)
    Waitinput

    IF %key = 2

        break

    ElseIf %key = 13

        settext txt_2&, gettext$(Edit&)
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_1&)

        __edE& = 0
        settext txt_1&, "alphanum"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_2&)

        __edE& = 1
        settext txt_1&, "         num"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_3&)

        __edE& = 2
        settext txt_1&, "alpha"
        setfocus(Edit&)
        settext Edit&, ""

    EndIf

    IFnot iskey(17) & iskey(86)

        Edit_EingabeAuswertung

    Else

        settext Edit&, E_txt$
        sendmessage(Edit&,$B1,len(E_txt$),len(E_txt$))

    EndIf

EndWhile

 
27.04.2016  
 




Ernst
ich denke ich hab's hinbekommen
Var __edE& = 0' ( 0 = alphanumerisch / 1 = numerisch  / 2 = aplpha )
Var AlphaNum$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,.%()/ "' Eingabe eingeschränkt auf vorhandene Zeichen
' -----------------------------------------------------------

Proc Edit_EingabeAuswertung

    Declare txt$
    Var x% = 1

    Select __edE&

        CaseOf 0: txt$ = AlphaNum$

        CaseOf 1: txt$ = left$(AlphaNum$,10)

        CaseOf 2: txt$ = right$(Alphanum$,len(AlphaNum$)-10)

    EndSelect

    whileloop len(getclip$())

        IF InStr(mid$(getclip$(),x%,1),txt$) > 0

            inc x%

        Else

            clearclip
            break

        EndIf

    EndWhile

    if InStr(right$(gettext$(Edit&),1),txt$) = 0

        txt$=left$(gettext$(Edit&),len(gettext$(Edit&))-1)
        settext Edit&, txt$
        sendmessage(Edit&,$B1,len(txt$),len(txt$))

    endif

EndProc

' -----------------------------------------------------------
windowstyle 8 + 512
Window 200,200-500,300
CLS RGB(212,210,200)
Var Edit& = Create("Edit",%hwnd,"",20,100,200,20)
setstyle Edit&,getstyle(Edit&) + $8
Var b_1&= Create("Button",%hwnd,"alphanum",10,150,80,30)
Var b_2&= Create("Button",%hwnd,"num",120,150,80,30)
Var b_3&= Create("Button",%hwnd,"alpha",230,150,80,30)
Var txt_1& = Create("TEXT",%hwnd,"alphanum",20,60,80,30)
Var txt_2& = Create("TEXT",%hwnd,"",100,60,200,30)
setfocus(Edit&)

While 1

    Waitinput

    IF %key = 2

        break

    ElseIf %key = 13

        settext txt_2&, gettext$(Edit&)
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_1&)

        __edE& = 0
        settext txt_1&, "alphanum"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_2&)

        __edE& = 1
        settext txt_1&, "         num"
        setfocus(Edit&)
        settext Edit&, ""

    ElseIf clicked(b_3&)

        __edE& = 2
        settext txt_1&, "alpha"
        setfocus(Edit&)
        settext Edit&, ""

    EndIf

    Edit_EingabeAuswertung

EndWhile

 
28.04.2016  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.318 Betrachtungen

Unbenanntvor 0 min.
H.Brill13.11.2022
Walter30.03.2019
Ernst10.04.2017
rquindt18.11.2016
Mehr...

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

Ernst (4x)
iF (1x)
RudiB. (1x)
funkheld (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie