Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Valid and LostFocus events don't fire
Message
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
Valid and LostFocus events don't fire
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Divers
Thread ID:
01482629
Message ID:
01482629
Vues:
230
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.
If it's not broken, fix it until it is.


My Blog
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform