FoxPro/Visual FoxPro - Alguien como se crear clases

 
Vista:

Alguien como se crear clases

Publicado por Katty (61 intervenciones) el 02/12/2003 04:30:53
Hola amigos, soy programadora de VFP 6.0 y tengo un diseño o arquitectura de Software, donde existen superclases o Categoria de clases, esto significa que dentro una clase existen otras, cuyos atributos o métodos pueden heredados por las clases inferiores o los objetos que se crean. Como puede hacer en Fox para codificar lo anterior?. Espero su ayuda exprtos en Fox.
Gracias
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

RE:Alguien como se crear clases

Publicado por Roman Suazo (2723 intervenciones) el 02/12/2003 17:24:33
Checa el comando DEFINE CLASS, le cual te permite crear las clase
en codigo. Las clases las podrias crear en un modo visual tambien.
Solo te vas al menu principal, le das en la opcion archivo/nuevo, la cual te da una pantalla donde se muestra el tipo de archivos que se pueden crear (escoges clase). Despues te sale una pantallita donde defines
el nombre de la clase, la libreria donde se guardara y la clase base a
partir de la cual se crea la nueva 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

RE:Alguien como se crear clases

Publicado por Foxperto (894 intervenciones) el 02/12/2003 17:24:33
Hola Katty:

1. Abres el archivo del proyecto.
2. Te vas a pestaña Clases.
3. Le das agregar o Nuevo.

Hay puedes crear tus clases partiendo de las clases bases de VFP o de clases que ya tengas creadas en VFP.

Estas tomaran las Herencias de las clases Bases.

Eso es mas que suficiente para que crees tus clases y le agreges el codigo necesario, pero si quieres mas poder, revisa en el Menu Herramnientas, la Opcion que dice Examinador de Clases.

Saludos
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

RE:Alguien como se crear clases

Publicado por Katty (61 intervenciones) el 04/12/2003 02:14:05
Justo a ese puntop quería llegar Foxperto.
Deseo crea una clase pero que no empiece en una clase base de Fox. deseo crear mi propia Clase Base, en la cual puada crear otras subclases, dentro la misma otras, estas clases no tienen nada que ver con Fox, mejor dicho son clases vacías que pueda añadir propiedades y eventos.
Contesta por favor. Gracias por la ayuda.
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

RE:Alguien como se crear clases

Publicado por Roman Suazo (2723 intervenciones) el 04/12/2003 16:54:03
Lo que tu quieres es basicamente crear estructuras o clases tipo C++, lo cual no es posible en FOX, lo mas cercano a eso en FOx es la clase tipo Custom (tambien hay otras como session), la cual no tiene representacion visual (la cual la hace mas ligera que otros objetos)y le puedes añadir las propiedades y metodos que quieras (de por si este objeto tiene un conjunto minimo de eventos, metodos y propiedades
en comparacion a las demas clases). Por lo demas, estoy de acuerdo
con lo que menciono Albert, todas las clases creadas en FOX pueden
servir de base para otras clases, etc
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

RE:Alguien como se crear clases

Publicado por Albert (1 intervención) el 04/12/2003 09:20:10
No se si capte bien la pregunta, pero te contesto de acuerdo a lo que entendi:

Todas las clases creadas en VFP heredan automaticamente las propiedades y eventos de la clase base, es decir, si tenemos una clase PADRE y despues creamos una clase HIJO, automaticamente esta hereda todas las propiedades y eventos de la clase PADRE.

Ejemplo:
----------------------------------------------------------------
*-- Creamos la clase BotonPadre a partir de la clase CommandButton
DEFINE CLASS BotonPadre AS CommandButton
Caption = "Presione aqui"
Height = 30
Width = 100
Visible = .T.
FontItalic = .T. && -- texto cursiva
ForeColor = RGB(255,0,0) &&-- color rojo

PROCEDURE Click
WAIT WINDOW "Ejecutando clase padre" TIMEOUT 1
CLEAR EVENTS
ENDDEFINE
*-----------------------------------------------------------------------
*-- Creamos la clase BotonHijo a partir de la clase BotonPadre
DEFINE CLASS BotonHijo AS BotonPadre
Caption = "Hazme un clic"
Height = 25
Width = 90

PROCEDURE Click
WAIT WINDOW "Ejecutando clase hijo" TIMEOUT 1
BotonPadre::Click
ENDDEFINE

En la clase BotonHijo se ha redefinido las propiedades Caption, Height y Width. Sin embargo, las propiedades Visible, FontItalic y ForeColor no se han definido, por lo tanto hereda automanticamente desde BotonPadre.

En cuanto a los eventos, el evento Click del BotonHijo quiero que ejecute un codigo, entonces defino:

PROCEDURE Click
*---
*-- Aqui mi codigo
*--
*-- Tambien quiero que ejecute el evento click del padre (BotonPadre)
BotonPadre::Click

Ohh esto ya es un poco largo... creo que me emocione :)
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
Imágen de perfil de Katty

RE:Gracias Albert y Roman, pero algo mas....

Publicado por Katty (264 intervenciones) el 04/12/2003 23:14:13
Hola Albert.
Sabes quisiera crea una clase pero sin la palabra "AS command", sin "AS", osea que sea mi clases base a partir de la cual podría crear mas clases, pero como dice Roman Suazo, eso noi se puede, si lo mas cercano es Custom, podría utilizar eso, pero quisiera un ejemplo concreto. Tengo una Clase llamada Conta, donde existen otras 3 clases llamadas Diario, Mayor y Sumas, Cada una de estas tiene una clase diferentes, como crear la o las clases para esta estructura.
Gracias a ambos.
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

RE:Gracias Albert y Roman, pero algo mas....

Publicado por Roman Suazo (2723 intervenciones) el 05/12/2003 00:44:08
Me podiras explicar un poco mas claro tu duda?
Lo que no entiendo es' donde existen otras 3 clases llamadas Diario, Mayor y Sumas, Cada una de estas tiene una clase diferentes, como crear la o las clases para esta estructura' es decir, tienes conta pero
quieres crear 3 clases mas a partir de esta? Mejor explicame con
peras y manzanas asi se me hace mas facil el asunto

Un aspecto mas acerca de las clases en fox es que no puede heredar
de diferentes clases a la vez (como C++), solo de una, una superclase
o clase padre.
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

RE:Gracias Albert y Roman, pero algo mas....

Publicado por Katty (61 intervenciones) el 05/12/2003 21:57:40
Hola Roman S.
Te explico, quiero tener una clase que sea la "Clase base" diseñada por mi, como las que ya existen: (create class) cuando salga la ventana para crear "nombre de clase", colocas el nombre, donde dice "basado en:" , no deseo que mis nuevas clases se basen en nada, pues deseo crear otra clase desde cero, desde nada. Que sea una superclase, que acoge a otras clases.
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

RE:Gracias Albert y Roman, pero algo mas....

Publicado por Albert (3 intervenciones) el 06/12/2003 03:39:24
Hasta donde yo se, en VFP no se puede crear clases desde cero o basado en la nada y luego integrar con los demas para usar posteriormente en otras clases (CREATE CLASS mi_nueva_clase AS MI_CLASE). Lo mas cercano a eso podria ser una clase "Custom". Pero si se puede desarrollar dll, ocx y otras yerbas con otras herramientas como C++, Delphi y otros y despues utilizar en tu proyecto:

miObjeto = CREATEOBJECT("MiApplicaton.MiRecursoExterno")
miObjeto=titulo="Titulo de mi recurso"
miObjeto=duracion=10
miObjeto.Muestra()
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

RE:Gracias Albert nuevamente con eso d ls clases

Publicado por Katty (61 intervenciones) el 06/12/2003 04:27:21
Gracias Albert
Temía una respuesta así, pero no importa, con la ayuda de una bibliogtrafía de programación encontré que Custom es algo así como "personal ", pero no indica como debe crearse, podrías explicarme como debo crearlo, como defino las propiedades yn atributo que deseo que tenga?.
Gracias por todo
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

RE:Gracias Albert nuevamente con eso d ls clases

Publicado por Roman Suazo (2723 intervenciones) el 06/12/2003 16:33:47
Se puede crear como se te menciono anteriormente: ya sea con
el comando DEFINE CLASS (la cual se debe poner en un prg). De este
modo para crear un metodo utilizas el comando Procedure o function y
para agregar una propiedad solo pones el nombre de la variable inicializandola con un valor. La segunda manera es visualmente, que
significa irte al menu archivo, escoger nuevo, crear una nueva
clase le pones nombre a la clase, en que libreria la guardas y en que
clase se basa. Una vez que estes creando la clase visualmente en el
menu te queda la opcion 'Clases' a partir de ahi pones nuevas propiedades o metodos o quitas los que pusiste.

Si quieres usar una clase en tu EXE, las clases deben ir adjuntadas en
el proyecto (o podriamos decir que en el paquete de instalacion).

Checa los comandos Set classlib y Set procedure para asi definir la libreria donde se encuentra la clase antes de instanciar una en tiempo
de ejecucion.

Un detalle que no te menciono Albert es que con Fox puedes crear modulos COM que son como controles activex pero sin interface grafica
algo asi como Dlls.
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