Español
Foro

Eingabe-Maske

 

rquindt
¡Hola

Gibt lo una Möglichkeit, en Eingabe una Vorgabe-Maske utilizarse?

Yo möchte z.B. en uno Datumseingabe "12.05.2016" vorgeben.
En Eingabe debería sólo Pagar erlaubt ser y a el Stellen, a denen el "." es, se el Kursor esta automáticamente überspringen.

Un zweite Versión währe "2X". dh. a el ersten Punto darf sólo "0-9" eingegeben voluntad, a el zweiten sólo "A-Z"
 
01.05.2016  
 




H.Brill
A Datumseingabe sería Yo el DateEdit uso.
Como kannst du una Datum vorgeben.
Siehe Kapitel 20.5 en el Ayuda.

A Versión 2 :
Como podría al Editar campo subclassen y
con el regulären Ausdrücken trabajo.
Suchmuster el ersten Punto : "[0-9]"
Suchmuster el zweiten Punto : "[A-Z]"
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
01.05.2016  
 




rquindt
¡Hola H.Brill

Gracias para el Tip con el DateEdit.
Yo habe lo veces getestet, funktioniert prima.

Gibt lo el Möglichkeit, auch una leeres Datumsfeld a transferencia sin
el el aktuelle Datum erscheint? (00.00.0000)

Desde que mich así langsam en XProfan einarbeite (habe vorher en DOS Powerbasic programmiert)
me está el con el SubClassen todavía no bastante klar.
Hättest Usted como una Ejemplo para mich?
 
01.05.2016  
 




H.Brill
Für el SubClassen veces una Anfang :
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
01.05.2016  
 




rquindt
¡Hola H.Brill

Yo habe Su código veces una bisschen umgebaut.
Damit kann Yo ahora por SubClassing Edit-Feld bearbeiten.
Den Code Yo como Expediente abgespeichert.

Yo habe intenta el código hier einzufügen,
aber esta va el Formatierung perdido.
Gibt lo una Anleitung,cómo hacerlo umgeht?

¿Puede Usted Usted media Code veces ansehen?
Kann uno todavía qué optimieren?

$H Messages.ph
$H Windows.ph
Def GetSysColor(1) !"USER32","GetSysColor"

cls GetSysColor(15)
UseFont "Arial",15,0,0,0,0
SETDIALOGFONT 1

Declarar Handle Editar1, Btn1
Declarar Int ende, String edittext, ErlaubteZeichen
Ventana 400, 200
Editar1 = Crear("Editar", %HWnd, "", 10, 50, 80, 20)
SetStyle Editar1, GetStyle(Editar1) | ~ES_UPPERCASE '--- Buchstaben sólo como Großbuchstaben ausgeben
@SendMessage(Editar1,$00C5,2,0) '--- Parámetro 3 erlaubt Anzahl max. Stellen

btn1 = Crear("Button", %HWnd, "Fertig", 10, 80, 60, 25)

ende = 0

Mensajes del usuario $10
SetFocus(Editar1)
SubClass Editar1, 1

Sinestar encargado ende

WaitInput
If Clicked(btn1)
edittext = GetText$(Editar1)
Messagebox(edittext, "", 0)
SetFocus(Editar1)
EndIf

Case %UMessage = $10 : ende = 1 '--- Ventana schließen angeclickt

EndWhile

SubClass Editar1, 0

End

SubclassProc

Declarar p&, ch$, s$

if &sWnd = Editar1
if %sMessage=258//wm_char
p& = Hiword(sendMessage(Editar1,$B0,0,0))//em_getSel '--- aktuelle Cursor-Position (sólo Spalte) imEditfeld
s$ = getText$(Editar1) '--- bisheriger Texto en Editar
ch$ = upper$(chr$(&swParam)) '--- letztes eingegebenes Signo, Asci-Code, en Großbuchstaben gewandelt

If p& = 1
ErlaubteZeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Más
ErlaubteZeichen = "0123456789"
EndIf

ifnot instr(ch$,ErlaubteZeichen) '--- si el letzte gedrückte Signo no Liste entspricht
If &swParam = 8 '--- Backspace / löschen
if p&
s$ = Del$(s$,p&,1) '--- Feld a Cursorposition löschen
dec p&,1
endif
EndIf
SetText Editar1,s$ '--- String a Editar-Feld transferencia
sendMessage(Editar1,$B1,p&,p&)//em_setSel '--- neue Cursor-Position festlegen
más
s$ = en el$(ch$,s$,p& + 1) '--- Eingabe a Cursor+1 einfügen
s$=Mid$(s$,1,2) '--- sólo el ersten 2 Signo tomar, si Eingabe länger ser debería por einfügen
setText Editar1,s$ '--- String a Editar-Feld transferencia
sendMessage(Editar1,$B1,p&+1,p&+1)//em_setSel '--- neue Cursor-Position festlegen
endif
set("winproc",0)
endif
EndIf

ENDPROC

 
05.05.2016  
 




Michael
W.
Yo war veces así frei...

Beachte el Ausrufezeichen hinter el CODE-Tag.

Das doppelte If kann ersetzt voluntad por
If SubClassMessage(Editar1, 258)//wm_char

 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
05.05.2016  
 




rquindt
¡Hola Michael

Gracias para el Tip
Yo habs geändert.

Como bekommt uno porque el código lesbar en el Foro?
 
05.05.2016  
 




Michael
W.
Über el Editar campo es "Beitrag|Schrift|Smilies|ein Pfeil". En letzterem wählst Usted simplemente Ver código fuente y fügst como Su Quellcode una. Si el erste Signo direkt hinter el öffnenden Klammer una "!" es, Luego se el Code belassen ya que es.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
05.05.2016  
 




rquindt
Gracias para el Tip.
Yo habs igual veces getestet. Sollte beim nächsten veces no
Problemas mehr geben.

Kann mann eigentlich mehrere SubClassing Routinen nutzen ( je Editar campo natürlich sólo una) oder kann vom XProfan sólo una verwaltet voluntad?
 
06.05.2016  
 




Jörg
Sellmeyer
"Es kann sólo una geben!"

Aber el es vielseitig. Usted puede en deiner SubClassProc sí verschiedene Contols adressieren y el auch todavía je después de Message unterschiedlich behandeln.

Kleiner Tipp todavía: El Ayuda ha dazu auch ausführliche Erläuterungen de Roland.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.05.2016  
 




p.specht

Hab´ mir´s después de XProfan11 portiert - Yo hoffe, el es OK para Euch:
'SubclassProc a Festlegung de Eingabemöglichkeiten
'2016-05 de rquint con wichtigen Beiträgen de H.Brill, Michael W.
'y Jörg Sellmeyer, 2018-12 en XProfan11 zurückgequält de p.specht
 $H Messages.ph
 $H Windows.ph
Def GetSysColor(1) !"USER32","GetSysColor"
Cls GetSysColor(15)
UseFont Arial,15,0,0,0,0
SETDIALOGFONT 1
Declarar Editar1&, Btn1&
Declarar ende&, edittext$, ErlaubteZeichen$
Ventana 400, 200
Edit1& = Crear("Edit", %HWnd, "", 10, 50, 80, 20)
'--- Buchstaben sólo como Großbuchstaben ausgeben
SetStyle Editar1&, GetStyle(Editar1&) | ~ES_UPPERCASE
'--- Parámetro 3 erlaubt Anzahl max. Stellen:
@SendMessage(Editar1&,$00C5,2,0)
Btn1& = Crear("Button",  %HWnd, "Fertig", 10, 80, 60, 25)
ende& = 0
Mensajes del usuario $10
SetFocus(Editar1&)
SubClass Editar1&, 1

Sinestar encargado ende&

    WaitInput

    If Clicked(Btn1&)

        edittext$ = GetText $(Editar1&)
        Messagebox(edittext$, "", 0)
        SetFocus(Editar1&)

    EndIf

    Case %UMessage = $10 : ende& = 1
    '--- Ventana schließen angeclickt

EndWhile

Main:
SubClass Editar1&, 0
End

SubclassProc

    Declarar p&, ch$, s$
    ' Vorschlag de J. Sellmeyer para Verwendung en varios Editcontrol-Feldern:
    'if &sWnd = Editar1&
    '    if %sMessage=258//wm_char
    '        SetMenuItem 4000
    '    elseif %sMessage=xxx//wm_...
    '        SetMenuItem 4001
    '    Endif
    'Elseif &sWnd = Editar2&
    '    if %sMessage=258//wm_char
    '        SetMenuItem 4001
    '    Elseif %sMessage=xxx//wm_...
    '        SetMenuItem 4003
    '    Endif
    'EndIf

    if &sWnd = Editar1&

        if %sMessage=258//wm_char

            '--- aktuelle Cursor-Position (sólo Spalte) en el Editar campo:
            p& = Hiword(sendMessage(Editar1&,$B0,0,0))//em_getSel
            s$ = getText$(Editar1&)'--- bisheriger Texto en Editar
            '--- letztes eingegebenes Signo, Asci-Code, en Großbuchstaben gewandelt
            ch$ = upper$(chr$(&swParam))

            If p& = 1

                ErlaubteZeichen$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

            Más

                ErlaubteZeichen$ = "0123456789"

            EndIf

            '--- Si el letzte gedrückte Signo no Liste entspricht:

            ifnot instr(ch$,ErlaubteZeichen$)

                If &swParam = 8'--- Backspace / löschen

                    if p&

                        s$ = Del$(s$,p&,1)'--- Feld a Cursorposition löschen
                        dec p&,1

                    endif

                EndIf

                SetText Editar1&,s$'--- String a Editar-Feld transferencia
                sendMessage(Editar1&,$B1,p&,p&)//em_setSel '--- neue Cursor-Position

            más

                s$ = en el$(ch$,s$,p& + 1)'--- Eingabe a Cursor+1 einfügen
                '--- sólo el ersten 2 Signo tomar, si Eingabe por einfügen länger ser debería:
                s$=Mid$(s$,1,2)
                setText Editar1&,s$'--- String a Editar-Feld transferencia
                sendMessage(Editar1&,$B1,p&+1,p&+1)//em_setSel '--- neue Cursor-Position

            endif

            set("winproc",0)

        endif

    EndIf

ENDPROC

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
09.12.2018  
 



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

13.313 Views

Untitledvor 0 min.
Detlef Jagolski17.05.2021
iF31.10.2020
Alibre21.10.2020
rafl29.06.2020
Más...

Themeninformationen



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