Italia
Foro

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
Downloadcounter150
Download
 
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 circa xpse) - keine Fehler.
FreeProfan / FreeProfan Interpreter 0.9-32 (am Interpreter kann's doch nicht liegen)
hast irgendeine Vermutung was faul ist oder sein potuto ??
 
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. potuto 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 Io l' 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.405 Views

Untitledvor 0 min.
H.Brill13.11.2022
Walter30.03.2019
Ernst10.04.2017
rquindt18.11.2016
Di più...

Themeninformationen

Dieses Thema hat 4 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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