Français
Forum

zulässige Eingabe im num. Éditer steuern

 

Thomas
Freier
avec einem alten Code suis je pas droite glücklich. Hat einer de euch quelque chose Besseres ou bien une concept?
mon Hauptproblem était dabei, dass si qui le contenu per "BackSpace" gelöscht wird, ne...aucune Punkt pour den vorgegebenen marque avant dem Punkt (=Komma) plus gesetzt wird.
Def GetSysColor(1) !"User32","GetSysColor"
cls GetSysColor(15)
UseFont Arial,15,0,0,0,0
SETDIALOGFONT 1
CreateText(%hwnd,"num. Eingabe max.: nn.nn",30,120,200,22)
var Ed&=Créer("Edit",%hwnd,»,30,165,80,20)
@sendmessage(Ed&,$00C5,5,0)'et sur 5 se mettre (nn.nn) begrenzt
SetFocus(Ed&)

Tandis que 1

    WaitInput
    cas %clé=2 : BREAK
    cas GETFOCUS(Ed&): NUMWERT Ed&,2'Handle, marque vorm Komma

Endwhile

Fin

Proc NUMWERT' AUSWERTUNG sur marque et se mettre

    Paramètres ED.N&,ED.N%
    var a$="abcdefghijklmnopqrstuvwxyz"
    a$=a$+Upper$("abcdefghijklmnopqrstuvwxyz")
    a$=a$+"!§$%&/()=?''*':;,-_²³{[]}\^°<>|++-"
    var c$=»

    WhileLoop len(a$)

        c$ = MID $(a$,&Boucle,1)' c$= qui nte Stringteil
        Settext ED.N&,@Translate$(gettext$(ED.N&),c$,»)' unzulässige effacer
        Settext ED.N&,@Translate$(gettext$(ED.N&),"..",".")' doppelte effacer

    Endwhile

    a$=$ Trim(gettext$(ED.N&))

    WhileLoop ED.N%+1

        @Match$("~.", a$)

        Si (%MatchPos>0) AND (%MatchPos<ED.N%+1)

            a$="0"+a$

        EndIf

    Endwhile

    Si len(a$)=ED.N%

        casenot @IsKey(8):a$=left$(a$,ED.N%)+"."

    EndIf

    SetText ED.N&,a$
    sendmessage(ED.N&,$00B1,len(gettext$(ED.N&)),len(gettext$(ED.N&))+1)'Cursor à l' Ende
    SetFocus(ED.N&)

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
10.06.2011  
 



Vlt. ungefähr quelque chose comme:
var erlaubteZeichen$="abcdefghijklmnopqrstuvwxyz"+Upper$("abcdefghijklmnopqrstuvwxyz")+"!§$%&/()=?''*':;,-_²³{[]}\\^°<>|++-"
Def GetSysColor(1) !"User32","GetSysColor"
cls GetSysColor(15)
UseFont Arial,15,0,0,0,0
SETDIALOGFONT 1
var nix&=CreateText(%hwnd,"num. Eingabe max.: nn.nn",30,120,200,22)
var Ed&=Créer("Edit",%hwnd,»,30,165,80,20)
SetFocus(Ed&)
subclass ed&,1//vrai

Tandis que 1

    WaitInput
    cas %clé=2 : BREAK

Endwhile

Fin

subClassProc

    si &sWnd=ed&

        si %sMessage=258//wm_char

            var p&=hiWord(sendMessage(ed&,$B0,0,0))//em_getSel
            var s$=getText$(ed&)
            var ch$=chr$(&swParam)

            ifnot instr(ch$,erlaubteZeichen$)

                si &swParam=8

                    si p&

                        si p&=3

                            s$=del$(s$,p&,1)
                            dec p&,1

                        endif

                        s$=del$(s$,p&,1)
                        dec p&,1

                    endif

                endif

                s$=translate$(s$,".",»)
                cas len($ S)>1 : s$=ins$(".",s$,3)
                setText ed&,s$
                sendMessage(ed&,$B1,p&,p&)//em_setSel

            d'autre

                s$=ins$(ch$,s$,p&+1)
                s$=translate$(s$,".",»)
                cas len($ S)>1 : s$=ins$(".",s$,3)
                s$=mid$(s$,1,5)
                setText ed&,s$
                cas p&=1 : add p&,1
                sendMessage(ed&,$B1,p&+1,p&+1)//em_setSel

            endif

            set("winproc",0)

        endif

    endif

endProc

 
10.06.2011  
 




Thomas
Freier
@iF, un SubClassProc voulais je zwar pas prendre. Im Moment peux je chez deinem Script aucun payons eingeben. faute habe je encore pas gesucht. Ferner devrait führende Nullen ergänzt volonté. Andernfalls peut plus Nachkommastellen comme zulässig eingegeben volonté ou bien es doit chaque fois le zulässige Nombre de marque je pour Kommalage angepasst volonté. Z.B.:
zul. nnnn.nn = 7 -> Eingabewert= 1.22 -> pour qui letzten 2 darf aucun weitere Eingabe plus possible son. maintenant alors seulement encore max. 4 marque.
et comment siehts chez unterschiedlichen Edits aus?

PS. faute ist beim Zulässigen, dass doit dans deinem Script naturellement volonté: var erlaubteZeichen$="1234567890" .
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.06.2011  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.097 Views

Untitledvor 0 min.
GC5704.08.2016
Ernst13.06.2016
rquindt21.02.2016
Rainer Hoefs30.06.2015
plus...

Themeninformationen

cet Thema hat 2 participant:

Thomas Freier (2x)
iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie