FoxPro/Visual FoxPro - Ayuda con algunos terminos técnicos

 
Vista:
sin imagen de perfil

Ayuda con algunos terminos técnicos

Publicado por Juan (71 intervenciones) el 22/01/2015 08:26:17
Buenos días.

Me gustaría saber si alguien puede explicarme paso a paso todos estos terminos y donde puedo encontrar más información.

- Modelo tres capas
- Clases y objetos
- Encapsulamiento, polimorfismo y herencia
- Jerarquías de clases
- Proteger y ocultar miembros de clases
- El comando DoDefault
- El examinador de clases
- Definición de clases mediante programación
- Clases base de Visual FoxPro

Todos estos terminos van relacionados con Visual FoxPro y me los han pedido en una última entrevista que hice, y no se muy bien a que se refieren con muchos de ellos.

Soy programador en Visual FoxPro, y nunca he utilizado DEFINE CLASS y comandos así, por eso me gustaría si alguien sabe de algún buen tutorial o algun sitio web donde te vayan explicando todo esto paso a paso.

Espero toda vuestra ayuda y poder seguir aprendiendo.

Un saludo.
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

Ayuda con algunos terminos técnicos

Publicado por Mauricio (45 intervenciones) el 22/01/2015 12:56:14
En la ayuda de vfp encontraras todo eso y mucho mas.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil

Ayuda con algunos terminos técnicos

Publicado por Juan (71 intervenciones) el 22/01/2015 13:52:44
Buenos días.

He estado mirando y he solucionado algunos temas pero otros sigo sin entenderlos bien.

Por ejemplo el metodo DoDefault no es igual que poner ::

Al crear un objeto con CREATEOBJECT(), se le pueden pasar parametros como en Jaca para los constructores?

Estoy un poco perdido en estos temas y necesito bastante ayuda de expertos.

Un saludo.
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
sin imagen de perfil

Ayuda con algunos terminos técnicos

Publicado por Juan (71 intervenciones) el 22/01/2015 15:18:44
Estoy haciendo el siguiente ejemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
miObj = CREATEOBJECT("Form1")
miObj.AddObject('oPerson', 'Persona', 'Pedro', 'Pérez', 22)
miObj.Text1.Value = miObj.oPerson.cNombre
miObj.Text2.Value = miObj.oPerson.cApellidos
miObj.Text3.Value = miObj.oPerson.nEdad
miObj.SHOW
 
READ EVENTS
 
DEFINE CLASS Form1 AS Form
	Width = 500
	Height = 400
	Visible = .T.
 
	ADD OBJECT Label1 AS Label WITH ;
			Caption = 'Nombre', Top = 10, Left = 10, Autosize = .T.
	ADD OBJECT Label2 AS Label WITH ;
			Caption = 'Apellidos', Top = 30, Left = 10, Autosize = .T.
	ADD OBJECT Label3 AS Label WITH ;
			Caption = 'Edad', Top = 50, Left = 10, Autosize = .T.
 
	ADD OBJECT Text1 AS TextBox WITH ;
			Height = 25, Width = 150, Top = 10, Left = 80
	ADD OBJECT Text2 AS TextBox WITH ;
			Height = 25, Width = 150, Top = 30, Left = 80
	ADD OBJECT Text3 AS TextBox WITH ;
			Height = 25, Width = 60, Top = 50, Left = 80
 
	ADD OBJECT BotonSalir AS CommandButton WITH ;
			Caption = 'Salir', Top = 10, Left = 100, Autosize = .T.
 
	PROCEDURE BotonSalir.Click
		release ThisForm
		CLEAR EVENTS
	ENDPROC
ENDDEFINE
 
DEFINE CLASS Persona
	cNombre = ''
	cApellidos = ''
	nEdad = 0
 
	PROCEDURE Init
	LPARAMETERS cNombre, cApellidos, nEdad
		This.cNombre = cNombre
		This.cApellidos = cApellidos
		This.nEdad = nEdad
	ENDPROC
ENDDEFINE

Pero al intentar ejecutar me dice "No se encuentra la definición de clase PERSONA"

Alguien me puede decir que es lo que estoy haciendo mal?.

También me puede alguien decir si este ejemplo es valido?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mI = CREATEOBJECT("Persona")        && Como puedo pasarle parámetos a la clase desde aquí
 
DEFINE CLASS Persona
	cNombre = ''
	cApellidos = ''
	nEdad = 0
 
	PROCEDURE Init
	LPARAMETERS cNombre, cApellidos, nEdad
		This.cNombre = cNombre
		This.cApellidos = cApellidos
		This.nEdad = nEdad
	ENDPROC
ENDDEFINE

O todas las clases tienen que estar insertadas ya en algún formulario?

Un saludo.
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ayuda con algunos terminos técnicos

Publicado por Fidel José (558 intervenciones) el 23/01/2015 00:18:53
Lo que necesitas es basarte en una clase de base de Visual Fox. Por ejemplo

DEFINE CLASS Persona AS Custom

Para tus dudas te adjunto un excelente trabajo de Daniel Díaz (Visual FoxPro y Programación Orientada a Objetos.doc) con ejemplos
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
sin imagen de perfil

Ayuda con algunos terminos técnicos

Publicado por Nacho Esviza (4 intervenciones) el 23/01/2015 13:43:19
Al ejecutar tu ejemplo, VFP nunca llega a leer la definición de las clases. Fijate que primero debe leer las definiciones y luego podés usar las clases. En tu ejemplo, sería mover las definiciones de clases por encima del código "cliente".

Con respecto al CREATEOBJECT() se puede usar así:

x = CREATEOBJECT("Persona", "Juan", "Pérez", 40 )

Es decir, le pasás los parámetros que quieras directamente en el CREATEOBJECT luego del nombre de clase
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