I've added messagebox at the very top of the Valid code and it didn't work. Yet the value is adjusted correctly (e.g. 0 is added when I type one digit).
The only thing is left to try is to re-start VFP. But I don't have high hopes here.
>>Hi everybody,
>>
>>I have a complex form with a few ActiveX controls. On the right side of the form I have a container with many controls (some of them quite complex).
>>
>>In the Init of the container I have this code
>>
>>for each loControl in this.controls foxobject
>> if pemstatus(m.loControl,'InteractiveChange',5)
>> if m.loControl.class <> 'Vfpdatepicker'
>> bindevent(m.loControl,"InteractiveChange",thisform,"InfoChanged",1)
>> * bindevent(m.loControl,"Valid",thisform,"InfoChanged")
>> else
>> bindevent(m.loControl,"DateChanged",thisform,"InfoChanged",1)
>> endif
>> endif
>>
>>And in the Valid event of the textbox (that represents time control) I have this code
>>
>>local lnColon, lnReturn
>>lnReturn = 1
>>SET STEP ON
>>*** Pad leading zeros onto the hours and minutes. I.e. "8 :00" or " 8: 0" becomes "08:00"
>>lnColon = atc(":", this.value, 1)
>>this.value = padl(alltrim(left(this.value,lnColon-1)), 2, '0') + ':' + padl(alltrim(substr(this.value,lnColon+1)), 2, '0')
>>if val(left(this.value, 2)) >= 24 or val(substr(this.value, 4, 2)) >= 60
>> WAIT WINDOW NOWAIT 'Invalid entry!'
>> lnReturn = 0
>>endif
>>
>>if m.lnReturn = 1
>> try
>> if val(strtran(this.value,':','.')) < val(strtran(this.parent.start_time.value, ':','.'))
>> =messagebox('End Time must be greater than Start Time',48,'Invalid Time range')
>> lnReturn = 0
>> endif
>> catch
>>*
>> endtry
>>endif
>>
>>return m.lnReturn
>>
>>
>>However, when I leave the control, the SET STEP ON is not firing and I never got my messagebox. I have the same behavior with the prior control (which is much much more complex - it's a date picker control). I can not make validation for these controls to test start vs. end dates.
>>
>>I'm guessing a possibility can be to put a transparent shape behind controls and put validation code in the shape LostFocus event. But is there a way to do this with my current implementation?
>>
>>Can you tell me what may be wrong in my code?
>>
>>Thanks in advance.
>
>Is there anything in the interactivechage() or when() event of the textbox or anything in the lostfocus() of the container?
If it's not broken, fix it until it is.
My Blog