Français
Forum

Eingabe-masque

 

rquindt
allô

Gibt es une Possibilité, chez qui Eingabe une Vorgabe-masque trop verwenden?

je voudrais z.B. chez einer Datumseingabe "12.05.2016" vorgeben.
chez qui Eingabe devoir seulement payons erlaubt son et à den se mettre, à denen qui "." ist, soll qui Kursor cette automatisch überspringen.

une zweite Version währe "2X". dh. à qui ersten Stelle darf seulement "0-9" eingegeben volonté, à qui zweiten seulement "A-Z"
 
01.05.2016  
 




H.Brill
Zur Datumseingabe serait je cela DateEdit verwenden.
là peux du un date vorgeben.
Siehe le chapitre 20.5 dans qui Aider.

Zur Version 2 :
là pourrait on cela Modifier le champ de subclassen et
avec den regulären Ausdrücken travailler.
Suchmuster qui ersten Stelle : "[0-9]"
Suchmuster qui zweiten Stelle : "[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
allô H.Brill

merci pour den Tip avec dem DateEdit.
j'ai es la fois getestet, funktioniert prima.

Gibt es qui Possibilité, aussi un leeres Datumsfeld trop transfert sans
cela cela aktuelle date erscheint? (00.00.0000)

là je mich so lente dans XProfan einarbeite (habe auparavant dans DOS Powerbasic programmiert)
c'est moi cela avec dem SubClassen encore pas entier bien sûr.
Hättest Du là un Beispiel pour mich?
 
01.05.2016  
 




H.Brill
Pour cela SubClassen la fois un 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
allô H.Brill

j'ai Deinen Code la fois un bisschen umgebaut.
avec cela peux je maintenant per SubClassing cela Éditer-champ Travailler.
Den Code habe je comme Dossier abgespeichert.

j'ai versucht den Code ici einzufügen,
mais dabei allez qui Formatierung verloren.
Gibt es une Anleitung,comment on cela umgeht?

peux Du Dir meinen Code la fois regarder?
peux on encore quoi optimaliser?

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

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

Déclarer Handle Éditer1, Btn1
Déclarer Int ende, String edittext, ErlaubteZeichen
Fenêtre 400, 200
Éditer1 = Créer("Éditer", %HWnd, "", 10, 50, 80, 20)
SetStyle Éditer1, GetStyle(Éditer1) | ~ES_UPPERCASE '--- Buchstaben seulement comme Großbuchstaben ausgeben
@SendMessage(Éditer1,$00C5,2,0) '--- paramètre 3 erlaubt Anzahl max. se mettre

btn1 = Créer("Button", %HWnd, "Fertig", 10, 80, 60, 25)

ende = 0

Utilisateur Messages $10
SetFocus(Éditer1)
SubClass Éditer1, 1

WhileNot ende

WaitInput
Si Clicked(btn1)
edittext = GetText$(Éditer1)
Messagebox(edittext, "", 0)
SetFocus(Éditer1)
EndIf

Cas %UMessage = $10 : ende = 1 '--- la fenêtre schließen angeclickt

Endwhile

SubClass Éditer1, 0

Fin

SubclassProc

Déclarer p&, ch$, s$

si &sWnd = Éditer1
si %sMessage=258//wm_char
p& = Hiword(sendMessage(Éditer1,$B0,0,0))//em_getSel '--- aktuelle Cursor-Position (seulement Spalte) imEditfeld
s$ = getText$(Éditer1) '--- bisheriger Text dans Éditer
ch$ = upper$(chr$(&swParam)) '--- letztes eingegebenes marque, Asci-Code, dans Großbuchstaben gewandelt

Si p& = 1
ErlaubteZeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
D'autre
ErlaubteZeichen = "0123456789"
EndIf

ifnot instr(ch$,ErlaubteZeichen) '--- si cela dernier gedrückte marque pas qui liste entspricht
Si &swParam = 8 '--- Backspace / effacer
si p&
s$ = Del$(s$,p&,1) '--- champ à Cursorposition effacer
dec p&,1
endif
EndIf
SetText Éditer1,s$ '--- String à Éditer-champ transfert
sendMessage(Éditer1,$B1,p&,p&)//em_setSel '--- neue Cursor-Position festlegen
d'autre
s$ = ins$(ch$,s$,p& + 1) '--- Eingabe à Cursor+1 insérer
s$=Mid$(s$,1,2) '--- seulement qui ersten 2 marque prendre, si Eingabe länger son sollte par insérer
setText Éditer1,s$ '--- String à Éditer-champ transfert
sendMessage(Éditer1,$B1,p&+1,p&+1)//em_setSel '--- neue Cursor-Position festlegen
endif
set("winproc",0)
endif
EndIf

ENDPROC

 
05.05.2016  
 




Michael
W.
j'étais la fois so libre...

Beachte cela Ausrufezeichen derrière dem CODE-journée.

cela doppelte Si peux ersetzt volonté par
Si SubClassMessage(Éditer1, 258)//wm_char

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




rquindt
allô Michael

merci pour den Tip
je habs geändert.

comment bekommt on car den Code lesbar ins Forum?
 
05.05.2016  
 




Michael
W.
Über dem Modifier le champ de steht "Beitrag|Schrift|Smilies|ein Pfeil". chez letzterem wählst Du simple Voir le texte source et fügst là Deinen Quellcode un. si cela erste marque direct derrière qui öffnenden Klammer un "!" ist, ensuite wird qui Code belassen comment il est.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
05.05.2016  
 




rquindt
merci pour den Tip.
je habs juste la fois getestet. Sollte beim prochain la fois aucun
Probleme plus donner.

peux homme eigentlich plusieurs SubClassing Routinen nutzen ( je Modifier le champ de naturellement seulement une) ou bien peux vom XProfan seulement une verwaltet volonté?
 
06.05.2016  
 




Jörg
Sellmeyer
"Es peux seulement une donner!"

mais qui ist vielseitig. tu peux dans deiner SubClassProc oui verschiedene Contols adressieren et qui aussi encore je pour Message unterschiedlich behandeln.

Kleiner Tipp encore: qui Aider hat en supplément aussi détaillé 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 pour XProfan11 portiert - je hoffe, c'est OK pour Euch:
'SubclassProc zur Festlegung de Eingabemöglichkeiten
'2016-05 de rquint avec wichtigen Beiträgen de H.Brill, Michael W.
'et Jörg Sellmeyer, 2018-12 sur 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
Déclarer Éditer1&, Btn1&
Déclarer ende&, edittext$, ErlaubteZeichen$
Fenêtre 400, 200
Edit1& = Créer("Edit", %HWnd, », 10, 50, 80, 20)
'--- Buchstaben seulement comme Großbuchstaben ausgeben
SetStyle Éditer1&, GetStyle(Éditer1&) | ~ES_UPPERCASE
'--- paramètre 3 erlaubt Anzahl max. se mettre:
@SendMessage(Éditer1&,$00C5,2,0)
Btn1& = Créer("Button",  %HWnd, "Fertig", 10, 80, 60, 25)
ende& = 0
Utilisateur Messages $10
SetFocus(Éditer1&)
SubClass Éditer1&, 1

WhileNot ende&

    WaitInput

    Si Clicked(Btn1&)

        edittext$ = GetText $(Éditer1&)
        Messagebox(edittext$, », 0)
        SetFocus(Éditer1&)

    EndIf

    Cas %UMessage = $10 : ende& = 1
    '--- la fenêtre schließen angeclickt

Endwhile

Main:
SubClass Éditer1&, 0
Fin

SubclassProc

    Déclarer p&, ch$, s$
    ' Vorschlag de J. Sellmeyer pour Verwendung dans mehreren Editcontrol-Feldern:
    'si &sWnd = Éditer1&
    '    si %sMessage=258//wm_char
    '        SetMenuItem 4000
    '    elseif %sMessage=xxx//wm_...
    '        SetMenuItem 4001
    '    Endif
    'Elseif &sWnd = Éditer2&
    '    si %sMessage=258//wm_char
    '        SetMenuItem 4001
    '    Elseif %sMessage=xxx//wm_...
    '        SetMenuItem 4003
    '    Endif
    'EndIf

    si &sWnd = Éditer1&

        si %sMessage=258//wm_char

            '--- aktuelle Cursor-Position (seulement Spalte) im Modifier le champ de:
            p& = Hiword(sendMessage(Éditer1&,$B0,0,0))//em_getSel
            s$ = getText$(Éditer1&)'--- bisheriger Text dans Éditer
            '--- letztes eingegebenes marque, Asci-Code, dans Großbuchstaben gewandelt
            ch$ = upper$(chr$(&swParam))

            Si p& = 1

                ErlaubteZeichen$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

            D'autre

                ErlaubteZeichen$ = "0123456789"

            EndIf

            '--- si cela dernier gedrückte marque pas qui liste entspricht:

            ifnot instr(ch$,ErlaubteZeichen$)

                Si &swParam = 8'--- Backspace / effacer

                    si p&

                        s$ = Del$(s$,p&,1)'--- champ à Cursorposition effacer
                        dec p&,1

                    endif

                EndIf

                SetText Éditer1&,s$'--- String à Éditer-champ transfert
                sendMessage(Éditer1&,$B1,p&,p&)//em_setSel '--- neue Cursor-Position

            d'autre

                s$ = ins$(ch$,s$,p& + 1)'--- Eingabe à Cursor+1 insérer
                '--- seulement qui ersten 2 marque prendre, si Eingabe par insérer länger son sollte:
                s$=Mid $(s$,1,2)
                setText Éditer1&,s$'--- String à Éditer-champ transfert
                sendMessage(Éditer1&,$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  
 



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

13.190 Views

Untitledvor 0 min.
Detlef Jagolski17.05.2021
iF31.10.2020
Alibre21.10.2020
rafl29.06.2020
plus...

Themeninformationen



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