Español
Foro

zulässige Eingabe en el num. Editar steuern

 

Thomas
Freier
Mit una alten Code bin Yo no bastante glücklich. Tiene una de euch algo Besseres oder una Concepto?
Mein Hauptproblem war esta, dass si la Inhalt por "BackSpace" gelöscht se, kein Punkt después de el vorgegebenen Signo antes el Punkt (=Komma) mehr gesetzt se.
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&=Crear("Edit",%hwnd,"",30,165,80,20)
@sendmessage(Ed&,$00C5,5,0)'y en 5 Stellen (nn.nn) begrenzt
SetFocus(Ed&)

Mientras que 1

    WaitInput
    caso %key=2 : BREAK
    caso GETFOCUS(Ed&): NUMWERT Ed&,2'Handle, Signo vorm Komma

EndWhile

End

Proc NUMWERT' AUSWERTUNG en Signo y Stellen

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

    WhileLoop len(a$)

        c$ = MID$(a$,&Loop,1)' c$= el nte Stringteil
        Settext ED.N&,@Translate$(gettext$(ED.N&),c$,"")' unzulässige löschen
        Settext ED.N&,@Translate$(gettext$(ED.N&),"..",".")' doppelte löschen

    EndWhile

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

    WhileLoop ED.N%+1

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

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

            a$="0"+a$

        EndIf

    EndWhile

    If 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 en Ende
    SetFocus(ED.N&)

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
10.06.2011  
 



Vlt. ungefähr algo como:
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&=Crear("Edit",%hwnd,"",30,165,80,20)
SetFocus(Ed&)
subclass ed&,1//true

Mientras que 1

    WaitInput
    caso %key=2 : BREAK

EndWhile

End

subClassProc

    if &sWnd=ed&

        if %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$)

                if &swParam=8

                    if p&

                        if p&=3

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

                        endif

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

                    endif

                endif

                s$=translate$(s$,".","")
                caso len(s$)>1 : s$=en el$(".",s$,3)
                setText ed&,s$
                sendMessage(ed&,$B1,p&,p&)//em_setSel

            más

                s$=en el$(ch$,s$,p&+1)
                s$=translate$(s$,".","")
                caso len(s$)>1 : s$=en el$(".",s$,3)
                s$=mid$(s$,1,5)
                setText ed&,s$
                caso 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, una SubClassProc Yo quería zwar no nehmen. Im Moment kann Yo en deinem Script no Pagar eingeben. Fehler Todavía no gesucht. Ferner debería führende Nullen ergänzt voluntad. Andernfalls puede mehr Nachkommastellen como zulässig eingegeben voluntad oder lo muß cada veces el zulässige Anzahl el Signo je después de Kommalage adaptado voluntad. Z.B.:
zul. nnnn.nn = 7 -> Eingabewert= 1.22 -> después de el letzten 2 darf no weitere Eingabe mehr posible ser. Jetzt also sólo todavía max. 4 Signo.
Und como siehts en unterschiedlichen Edits de?

PS. Fehler es beim Zulässigen, dass muß en deinem Script natürlich voluntad: var erlaubteZeichen$="1234567890" .
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.06.2011  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.088 Views

Untitledvor 0 min.
GC5704.08.2016
Ernst13.06.2016
rquindt21.02.2016
Rainer Hoefs30.06.2015
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

Thomas Freier (2x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie