Forum | | | | 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
|
| | | | |
| | RudiB. |
klappt noch nicht so ganz....aber sonst super... |
| | | | |
| | Ernst | wie ist das bei dir zustandegekommen ? ich hab's zig-mal durchprobiert (auch über xpse) - keine Fehler. FreeProfan / FreeProfan Interpreter 0.9-32 (am Interpreter kann's doch nicht liegen) hast irgendeine Vermutung was faul ist oder sein könnte ?? |
| | | | |
| | funkheld | Bei mir klappt es fehlerfrei mit XPSE. XprofanX3
Liegt am Freeprofan.
Gruss |
| | | | |
| | | @ernst: Vmtl. strg+v etc.,
vlt. könnte eine usermessage wm_keydown = 256 Abhilfe schaffen, zur Not auch waitinput 333 testen. |
| | | | |
| | 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 ich den 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
|
| | | | |
| | 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
|
| | | | |
|
AntwortenThemenoptionen | 7.276 Betrachtungen |
ThemeninformationenDieses Thema hat 4 Teilnehmer: |