FoxPro/Visual FoxPro - LostFocus/Label1/ Textbox1

   
Vista:

LostFocus/Label1/ Textbox1

Publicado por karen (1 intervención) el 30/06/2017 04:29:43
Hola me podrían ayudar para que sirve Lost Focus y pequeño ejemplo lo mismo con label1 y un pequeño ejemplo y con TextBox1 y un pequeño ejemplo es para un deber....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

LostFocus/Label1/ Textbox1

Publicado por Fidel José (520 intervenciones) el 30/06/2017 13:40:31
LostFocus es un evento que ocurre cuando un objeto enfocable pierde el enfoque.
Los controles Label no tienen GotFocus ni LostFocus porque no tienen enfoque.

LostFocus Applies To: CheckBox | ComboBox | CommandButton | Container Object | Control Object | EditBox | Form | ListBox | OLE Bound Control | OLE Container Control | OptionButton | Spinner | TextBox

El enfoque se pierde por:
1) Tecla Tab
2) Tecla Enter
3) Click sobre otro control enfocable.
4) Llamada a otro formulario con objetos enfocables desde un evento del control enfocado (Click, DblClick, Keypress, Valid, etc.)
5) La instrucción Objeto.SetFocus() enviada desde algun evento del control enfocado (excepto When y Valid que no la soportan).

Para que un objeto enfocable reciba el foco, debe tener su propiedad Enabled = .T.

Básicamente, los eventos en un control enfocable (salvo Form y Container) son los siguientes:
Al enviar el enfoque a un control enfocable (Enabled = .T.)
1) When
2) GotFocus

Al escribir algo en el control (si admite escitura)
KeyPress
InteractiveChange

Al hacer click sobre el control, Click(), Si es doble Click DblClick()

Al presionar TAb, Enter o enfocar con el mouse otro control:
Valid
LostFocus

Para programar cualquier interfaz, lo primero que necesitas conocer es el orden en que se suceden los eventos y cuándo es posible que sucedan.

En este ejemplo se busca un producto en una tabla de productos, ingresando el código de producto.
En el evento Valid se determina si el código buscado está en la tabla. Si no lo encuentra, regresa el foco y no ejecuta el LostFocus.
En el evento LostFocus (si el valor del control no es Empty(), busca el registro y actualiza otros controles. Si es Empty() no hace nada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PROCEDURE CntProd.Text1.Valid
		This.value=alltrim(UPPER(this.value))
		if !empty(this.value)
			cCodibus=this.value
			if !indexseek(cCodibus,.f.,"PRODUC","PRODOTRO")
				Messagebox("El código &cCodibus no se encuentra.",0,Th_mensaje)
				This.value=""
				return 0
			endif
		endif
	ENDPROC
 
	PROCEDURE CntProd.Text1.LostFocus
		This.value=alltrim(this.value)
		if !empty(this.value)
			cCodibus=this.value
			SELECT (Thisform.FileUsed)
			indexseek(cCodibus,.t.,"PRODUC","PRODOTRO")
			Thisform.Grilla.Refresh
			thisform.cnt_enfoque.Value = Versales(EVALUATE(.fileused+"."+.fieldnom))
			Thisform.Grilla.Setfocus
		endif
 
	ENDPROC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar