Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Imput Mask = 99:99!!
Message
From
03/09/1998 11:31:36
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
 
To
03/09/1998 11:22:32
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00132790
Message ID:
00132815
Views:
16
>>>I want to use a ch6 field to represent a time value.
>>>I would like to use the imputmask of 99:99!!.
>>>for example 12:45PM. I want to force the !! to
>>>be either AM or PM. any ideas? thanks :)
>>Rob,
>>Keypress, ,nteractivechange ?
*keypress
>>if this.selstart = 6
>>   nodefault
>>   if inlist(nKeyCode,asc("A"),asc("a"),asc("P"),asc("p"))
>>      This.value = this.value + upper(chr(nKeyCode))+"M"
>>   endif
>>endif
Hope works. Not tested.
>>Cetin
>----------
>Good morning Cetin and thanks for your reply,
>Lets talk about your code:
>
>if this.selstart = 6 && is selstart meanig the time field? and the AM/PM
>would be on the 5th and 6th positions of the field. Not sure how you
>are testing for both positions.
>
> nodefault && why are you using this?
>
>
> if inlist(nKeyCode,asc("A"),asc("a"),asc("P"),asc("p"))
> This.value = this.value + upper(chr(nKeyCode))+"M"
> endif
>endif

Rob,
Corrected code first :
* Keypress of your textbox (time)
LPARAMETERS nKeyCode, nShiftAltCtrl
if this.selstart = 5 and between(nKeyCode,32,126)
	nodefault
	if inlist(nKeyCode,asc("A"),asc("a"),asc("P"),asc("p"))
		this.value = substr(this.value,1,5) + upper(chr(nKeyCode))+"M"  
		this.selstart = 7
	endif
endif
if this.selstart > 5 and between(nKeyCode,32,126)
   nodefault
endif
If at position after second min digit (selstart=5) and key pressed is an alphanumeric (between..) then only let to press "A","a","P","p". Nodefault is to "absorb" other presses. Between check is necessary for disabling our code for backspace, del, arrows etc. (so it in fact should have a default value or "AM" or "PM"-user might just press enter there). Now if we intercept one of those keys, it will be AM or PM, so set value appropriately (this.value ...) and set selstart just after the "M". The second check is for absorbing alphanumeric passed selstart = 5.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform