¿Como llamo a un formulario en una clase?

1,559 views
Skip to first unread message

Fox Reloaded

unread,
Feb 13, 2012, 3:13:28 PM2/13/12
to Comunidad de Visual Foxpro en Español
Hola a todos los Foxeros®

De antemano gracias por todas las respuestas que puedan darme, es mas
yo se que puede sonar estupido pero como hago para llamar un
formulario que tengo definido en una clase? ya que me interesa mucho
programar linea por linea y no con el diseñador grafico de
formularios. si ya estoy en el _screen de mi programa, como haria para
llamar a los formularios que tengo en clases? pense en DO FORM pero no
se porque no me convence.

Gracias y perdonen la pregunta tan tonta que estoy haciendo, pero en
realidad me interesa mucho saber.

Christian Torres.

Mauricio Molinero,

unread,
Feb 13, 2012, 3:25:08 PM2/13/12
to publice...@googlegroups.com
Hola Christian!

Crea una instancia de la clase mediante

loForm = CREATEOBJECT('MiForm')
loForm.Show(1)

Saludos!

Mauricio R. Molinero,

Fox Reloaded

unread,
Feb 13, 2012, 3:27:31 PM2/13/12
to publice...@googlegroups.com
Me imagino que esa misma instancia la puedo definir como una clase... El metodo show lo llamare desde cualquier control del _screen cierto?

2012/2/13 Mauricio Molinero, <pip...@gmail.com>



--
Thanks for everything... :D


         --- Fox ---
Maracaibo, Venezuela

TheNewInquirer

unread,
Feb 13, 2012, 3:35:13 PM2/13/12
to Comunidad de Visual Foxpro en Español
No hay preguntas tontas. Yo las hago todo el tiempo y siempre aprendo
algo jeje!

A veces hasta aprendo que algunas preguntas no se deben hacer a
ciertas personas jeje

En este caso, aprenderás algo de mi: No soy experto en fox y no tengo
la respuesta a tu pregunta.

Pero ya habrá alguien que si tenga la respuesta y sino, preguntale a
Mr. Google o a Mr. Microsoft.

Y si MS no tiene la respuesta, talvez la tenga un joven "novato" que
se la viva en el internet.

Recuerdo una vez que en una empresa tenían problemas con su red
inalambrica.

Llamaron al "experto en redes"....

Cuando entró era un triste jovencito, con la facha de cualquier otro
joven: pelos parados, jeans descoloridos y cayendosele, tenis, en
fin... un joven normal.

Y en un 2 x 3 arreglo el problema !!

Conclusion: a veces la solución puede venir de la fuente menos
esperada!

A veces, la solución es simple y estaba frente a ti, pero como estabas
estresado, no la viste y alguien "sin stress" la podrá ver facilmente.

Saludos!


Fox Reloaded

unread,
Feb 13, 2012, 3:38:24 PM2/13/12
to publice...@googlegroups.com
Jajajajajajajajajajaja Gracias por el aliento, en realidad programaba bajo visual basic, pero por cosas de la vida (Obligado al principio) comenze a programar en FoxPro a lo cual me di contra un muro, del cual no se me ha quitado la hinchazon del golpe (tampoco espero que se me quite) porque me encontre con una herramienta mas poderosa que el Basic en si (Ojo es una opinion personal) y me ha gustado, ademas hacia cosas en codigo de Basic que basicamente no le encuentro sentido a como hacerlas aqui en FoxPro como la pregunta del inicio del post. Pero de pana Un millon xD

Christian Torres.

2012/2/13 TheNewInquirer <thenewin...@gmail.com>

Irlandes 1960

unread,
Feb 14, 2012, 7:52:13 AM2/14/12
to publice...@googlegroups.com
Christian, no me cierra el enfoque que estas planteando.
¿un form definido como clase, invocado desde un programa?
me suena raro.
Los forms en principio SON el programa. Los viejos PRG han quedado para tareas auxiliares que no requieren interface gráfica con el usuario, que es como casi nada en un sistema actual.
La forma productiva de trabajar en VFP es usar el diseñador de interface gráfica donde creas el form a partir de una clase que tengas definidas (yo básicamente uso tres, uno para los menúes, otros para los generadores de informes, y el tercero para todo lo demás) e ir pegando los objetos que necesites desde la barra de herramientas, en los cuales agregaras el código necesario en los eventos que requieras. Y por lo que se, esto también se aplica en VB.
Armar el programa desde código plano, es como tener una ferrari para andar a 40 por el barrio, se puede, pero es un desperdicio.


Carlos Miguel FARIAS

unread,
Feb 14, 2012, 8:49:27 AM2/14/12
to publice...@googlegroups.com
Para llamar un formulario definido como clase desde un programa
lo instancias y lo mostras
oForm = NEWOBJECT( 'tuClaseForm', ...
oForm.SHOW() && poner parametro 1 si modal, asume 2, no modal

En algunos casos, el diseñador visual no sirve si el formulario a
crear debe tomar tamaño en forma dinámica (salvo que te puedas
arreglar con ANCHOR, a partir de VFP 9).

Y pasear a 40 por el barrio con la Ferrari, me encanta, ...
a) para ver como están las chicas...
b) verle la cara de envidia a los vecinos.
No es viernes, pero el comentario lo amerita.
Saludos: Miguel, Santa Rosa (LP)


El 14/02/12, Irlandes 1960 <irland...@gmail.com> escribió:

Irlandes 1960

unread,
Feb 14, 2012, 11:13:26 AM2/14/12
to publice...@googlegroups.com
BUENISIMO CARLOS... en especial lo de las chicas, tenes toda la razón del mundo

Carlos Miguel FARIAS

unread,
Feb 14, 2012, 3:56:28 PM2/14/12
to publice...@googlegroups.com
Y si, desde la Ferrari, podes llamar chicas en FORMa de cualquier clase.
Yo por las dudas la envuelvo en un Try Catch, no vaya a ser que throw alguna porquerìa

Fox Reloaded

unread,
Feb 15, 2012, 7:43:03 AM2/15/12
to publice...@googlegroups.com
Gracias por sus comentarios, ustedes son mas experimentados que yo en esto de VFP, la razon por la que queria hacer esto es porque toy trabajando con el _screen de VFP como ventana principal, y necesitaba "encapsular" por decirlo de alguna manera, un formulario en codigo en una clase, ya que con el _screen no tengo mucha experiencia.

Saludos y un abrazo.

Christian Torres.
Venezuela.

2012/2/14 Carlos Miguel FARIAS <carlosmig...@gmail.com>

Carlos Miguel FARIAS

unread,
Feb 15, 2012, 9:26:14 AM2/15/12
to publice...@googlegroups.com
El _screen es un formulario que siempre está, puede usarse como fondo
de la aplicación, para poner el menu principal o la barra de
herramientas genérica o un fondo de pantalla especifico ("ad hoc"),
pero no mucho mas.
(mas allá que es un buen lugar para meter variables de uso global y no
se quieren definir public)
Para formularios, te conviene crear una biblioteca, meter ahi tu clase
formulario base, con caracteristicas comunes a todos tus formularios,
luego crear formularios a modo clase deriviados con caracteristicas
mas especificas.
Luego a partir de estas clases propias de formularios, crear los
verdaderos formularios donde van las cosas especificas.
VFP tiene un modelo de objetos muy potente (tanto de elementos
visuales como los no visuales).
Por ejemplo, en parte de tus formularios, a lo mejor es necesario
trabajar con entorno privado, y fijar un conjunto de SETs algo ON/OFF
o TO valor, lo que normalmente se pone en el metodo load.
Entonces, creas una clase formulario, con todo eso codificado y luego
al crear el formulario real, te basas en dicha clase y no tenes que
reescribir.
Si 10 formularios usan ese seteo, solo le escribiste y probastes una
vez, el codigo esta una sola vez, y te funciona en 10 lados
diferentes, solo por heredar.
Saludos: Miguel, La Pampa (RA)


El 15/02/12, Fox Reloaded <extasis...@gmail.com> escribió:


> Gracias por sus comentarios, ustedes son mas experimentados que yo en esto
> de VFP, la razon por la que queria hacer esto es porque toy trabajando con
> el _screen de VFP como ventana principal, y necesitaba "encapsular" por
> decirlo de alguna manera, un formulario en codigo en una clase, ya que con
> el _screen no tengo mucha experiencia.
>
> Saludos y un abrazo.
>
> Christian Torres.
> Venezuela.
>
> 2012/2/14 Carlos Miguel FARIAS <carlosmig...@gmail.com>
>
>> Y si, desde la Ferrari, podes llamar chicas en FORMa de cualquier clase.

>> Yo por las dudas la envuelvo en un *Try Catch*, no vaya a ser que *throw
>> *alguna


>> porquerìa
>>
>> El 14 de febrero de 2012 13:13, Irlandes 1960
>> <irland...@gmail.com>escribió:
>>
>> BUENISIMO CARLOS... en especial lo de las chicas, tenes toda la razón del
>>> mundo
>>>
>>>
>>
>
>
> --

> *Thanks for everything... :D*
> *
> *
> *
> *
> * **--- Fox ---*
> *Maracaibo, Venezuela*
>

Fox Reloaded

unread,
Feb 15, 2012, 9:48:57 AM2/15/12
to publice...@googlegroups.com
mmmm Interesante tu respuesta, lo que pasa es que yo no (no tengo mucha idea de eso de las clases pero he leído algo) se mucho acerca de clases pero he leído un buen material y al parecer todos los controles en windows trabajan en base a clases diseñadas (aunque desconozco el concepto) por ellos, yo normalmente lo que hago es diseñar visualmente los formularios que voy a utilizar y después crear como un formulario principal (como especie de consola) donde se invocan segun el caso el formulario a utilizar, pero esto en tiempo de ejecución me traía problemas como que el _screen no desaparecía y aunque vi ejemplos de como esconderlo para poder utilizar el formulario inicial y no el _screen uno de los problemas que tuve despues es el famoso error "No se puede salir de Visual FoxPro" para con lo cual decidi trabajar con el _screen ya que yo vi que tenia mas chance de utilizarlo a mi favor y no en mi contra, por un lado es ventajoso pero por otro es como medio dificil trabajar con el ya que no tiene las mismas propiedades y metodos (de hecho encontre que no se puede utilizar los eventos del _screen) que un formulario de los que uno diseña en modo visual, en fin, el problema que tenia inicialmente ya lo resolvi gracias a Dios, que era que el formulario "Login" iniciara junto con el _screen en modo modal y una vez cargado lo mostrara y no te dejara como usuario acceder a las demas caracteristicas del _screen sin antes haber pasado por la ventana de "Login", ahora el problema que tengo es que no se destruye el formulario de login una vez se ha concedido el permiso para usar la aplicacion, deberia bastar con un simple Thisform.Release al validar true la autorizacion del usuario, pero no es asi me envia a _screen y el formulario queda ahi mostrado pero como si estuviera en Enabled = .T., por ahora no tengo solucion a este problema pero voy a intentar que otras cosas puedo hacer para evitar este inconveniente, de todas maneras gracias por la explicacion, me gustaria mucho si me pudieran hacer llegar codigos de ejemplo y documentacion donde te expliquen muy bien lo de las clases y sus funcionalidades (pueden ser links).

Gracias nuevamente y un abrazo.

Christian Torres.
Venezuela.

2012/2/15 Carlos Miguel FARIAS <carlosmig...@gmail.com>

Walter R. Ojeda Valiente

unread,
Feb 15, 2012, 9:51:25 AM2/15/12
to publice...@googlegroups.com
Puedes descargar este documento:

http://www.mediafire.com/?yi41z0y7z1fnol6

Allí se explican los conceptos de clases y hay muchísimos ejemplos.

Saludos.

Walter.




Date: Wed, 15 Feb 2012 10:18:57 -0430
Subject: Re: [vfp] Re: ¿Como llamo a un formulario en una clase?
From: extasis...@gmail.com
To: publice...@googlegroups.com

Fox Reloaded

unread,
Feb 15, 2012, 9:52:50 AM2/15/12
to publice...@googlegroups.com
Gracias por tu colaboracion Walter estare echando un ojo para documentarme mas de este tema gracias :)

Christian Torres.
Venezuela. * * * * * * * *

2012/2/15 Walter R. Ojeda Valiente <wr...@hotmail.com>

GeoSys Diseño de Software

unread,
Feb 15, 2012, 2:08:29 PM2/15/12
to publice...@googlegroups.com

Fox Reloaded, ¿Estás aprendiendo VFP por medio de una institución (Universidad, Cursos libres, ect.) o por tu propia cuenta?


Te hago esta pregunta, porque una vez aquí en Costa Rica, una estudiante me pidió ayuda, ya que estaba estudiando para ingeniera de sistemas en una Universidad de mi país,  tenían que ver en esa carrera cuatro lenguajes de programación diferentes.


La cosa es que los profesores de programación lo que les decían a los alumnos, era que buscaran información y ayuda en la calle (fuera de la institución) y les dejó de tarea hacer unos formularios en VB, VFP, no me recuerdo cuales eran los otros lenguajes.


La cosa es que tenían que aprender por medio de terceros la programación, claro puedes creer la preocupación de esos estudiantes al hacer una tarea sin conocer el lenguaje ni nada de programación.


Primero tienes que estudiar y ver todas las propiedades y métodos de los formularios, como que es un formulario modal y no modal (WindowType).


Te cito lo que dice la ayuda de VFP8 que está en español, creo que es bueno que la estudies.


Existen tres formas de hacer y ejecutar formularios (ShowWindows):


ShowWindow (Propiedad)

Especifica si un formulario o una barra de herramientas es un formulario de nivel superior o secundario. Está disponible en tiempo de diseño; es de sólo lectura en tiempo de ejecución.

Form.ShowWindow[ = nExpr]

Valores de la propiedad

nExpr

Los valores de la propiedad ShowWindow son:

 

0  En pantalla (valor predeterminado). Se trata de un formulario secundario que está colocado en la ventana principal de Visual FoxPro.


1  En formulario de nivel superior. Se trata de un formulario secundario del formulario de nivel superior activo, que puede ser la ventana principal de Visual FoxPro u otro formulario de nivel superior. Use esta opción si desea colocar el formulario secundario dentro del formulario de nivel superior activo.

Si nExpr está establecido en 1 cuando el formulario de nivel superior es la ventana principal de Visual FoxPro, Visual FoxPro restablecerá automáticamente nExpr en 0.


2 Como un formulario de nivel superior. Se trata de un formulario de nivel superior en el que se pueden colocar formularios secundarios. Observe que un formulario de nivel superior es siempre no modal, independientemente de lo establecido en la propiedad WindowType.


Observaciones

Un formulario secundario es un formulario que se encuentra dentro de otro. Los formularios secundarios no se pueden mover fuera de los límites de su formulario primario; cuando se minimizan, aparecen en la parte inferior del formulario primario. Si se minimiza un formulario primario, también se modificarán los secundarios.

 

Un formulario de nivel superior es un formulario independiente no modal, que sirve para crear una aplicación SDI (interfaz de un solo documento, single document interface) o para utilizarse como el primario de otros formularios secundarios. Los formularios de nivel superior funcionan al mismo nivel que otras aplicaciones de Windows y pueden aparecer por delante o por detrás de ellas. Los formularios de nivel superior aparecen en la barra de tareas de Windows.

 

La propiedad Desktop determina el comportamiento de un formulario secundario. Si la propiedad Desktop está establecida en el valor verdadero (.T.), el formulario secundario no estará limitado a los bordes de su formulario primario y podrá desplazarse a cualquier sitio dentro del escritorio de Windows. El formulario secundario no aparece en la barra de tareas de Windows.

Tienes que probar y jugar con eso, luego comprenderás su uso y el porqué de las tres opciones.


Saludos


Anthony Contreras Peralta


Costa Rica.

Fox Reloaded

unread,
Feb 15, 2012, 2:46:27 PM2/15/12
to publice...@googlegroups.com
Bueno te cuento que yo aprendi pero en un instituto, y de verdad ya veo que en ese tipo de instituciones como que enseñan lo mismo porque ademas de programacion, seudocodigos (algoritmos) no te enseñan a trabajar bajo una API de algun sistema operativo en particular, en realidad cuando nos enseñaron a programar lo hicieron con C++ y como todos sabemos es un lenguaje portable, osea que no necesariamente tiene que ser programable bajo windows, lo otro es que ademas de pseudocodigo, algoritmos e instrucciones logicas, te enseñan bastate matematicas de logicas, si bien un profesor me dijo a mi que no se necesita aprenderse un algebra de baldor para aprender a programar, solo se necesita bastante matematica logica para poder desarrollar un programa y asi por medio de logica tener conocimientos intuitivos acerca de cada desarrollo en particular, otra de las cosas que me dijeron que tenia que aprender por fuera (cosa que hasta ahora no me he puesto a buscar mucho en profundidad) es como funcionan los sistemas operativos, hay muchos libros que hablan de eso y en particular nos recomendaron que escogieramos bien, sobre que topico de programacion lo queriamos hacer (aplicaciones cliente servidor, juegos, Programacion web y muchas otras subramas por decirlo asi) ya que no podiamos cubrir todas las necesidades reales de un programa aunque nos empapemos mucho en cada cosa a la vez. Yo comenze con basic pero sin saber como funcionaba la API de windows o por lo menos como aprovecharme de ella, lo fui aprendiendo intuitivamente y autodidacticamente por mi cuenta, pero lo de programar si fue en un instituto. Me aleje de C++ por lo tedioso que puede ser desarrollar y depurar un programa en C aunque bien se que es bueno no dejar eso atras, ya por lo poderoso que es. Ahora estoy con VFP porque veo lo poderoso que es en cuanto a manejo de bases de datos, y hay cosas que he hecho intuitivamente y cosas que he buscado en internet y en foros como esto, que gracias a Dios no me dan la solucion (en algunos casos) pero si me dan las pautas para no caer en el juego de que otros hagan las cosas por mi.

Espero haber aclarado tu duda en cuanto a las preguntas tontas que puedo llegar a hacer, solo que siempre pruebo la manera mas eficiente de hacer las cosas y trato de entenderlas bien, no de copiar y pegar codigo para despues no saber que es lo que hace...

Gracias por tus comentarios y respuestas.

Christian Torres.
Venezuela.

2012/2/15 GeoSys Diseño de Software <geos...@gmail.com>

Fox Reloaded

unread,
Feb 15, 2012, 2:51:02 PM2/15/12
to publice...@googlegroups.com
Otra cosa tambien a tener en cuenta es que yo pregunto esto es porque en realidad del formulario que estoy hablando es del _screen de VFP que es sobre el cual estoy programando. Ya vi por lo menos que no tiene eventos los cuales uno pueda utilizar a su favor.

Gracias de todas maneras.

Christian Torres.
Venezuela.

2012/2/15 Fox Reloaded <extasis...@gmail.com>

GeoSys Diseño de Software

unread,
Feb 15, 2012, 5:16:51 PM2/15/12
to publice...@googlegroups.com
Christian,  el _screen es la ventana principal de VFP, lo que se hace es crear un formulario principal y luego llamar a los otros formularios, cuando se compila el proyecto escoges el formulario principal y de ahí generas el exe.

El _screen si le puedes pasar valores desde cualquier formulario, ejemplo:

Desde el evento Init de un formulario:

 _screen.caption="Christian Torres de Venezuela " 

Si el nombre de la ventana principal de VFP, es Christian Torres de Venezuela

O puede ser que lo nombres igual que el nombre de una etiqueta
_screen.caption = ALLTRIM(thisform.label2.Caption)

También en vez de usar variables públicas puedes pasarlas al _screen y luego llamarlas desde cualquier formulario o reporte.

En este ejemplo la variable la llamaremos animal y le asignaremos el valor a Mono Cara Blanca

_screen.AddProperty("Animal", "Mono Cara Blanca")

WAIT window _screen.animal && El de animal Mono Cara Blanca

Ahora quieres cambiar el valor de la variable animal

otro = " Con el Perro" && Variable local

_screen.animal = _screen.animal+otro

WAIT window _screen.animal && ahora el valor es Mono Cara Blanca Con el Perro

Almacenar valores en el screen es como usar variables públicas, estarán presentes en cualquier lado de tu aplicación.

Entonces yo utilizo el _screen para casos como esos, no sé como es que dices que tu programas en el _screen.

Saludos

Anthony Contreras Peralta.

Costa Rica.

Fox Reloaded

unread,
Feb 15, 2012, 5:37:13 PM2/15/12
to publice...@googlegroups.com
Bueno te explico, normalmente yo hacia asi, pero es algo parecido a desarrollar un programa en C++ se hace en texto plano o en un programa compilador, si bien no tenia muy bien entendido lo de los modos de las ventanas en VFP y te agradezco de antemano por habermelo aclarado, yo para lo unico que quiero el screen es para que sea la ventana principal de mi programa, siguiendo con lo de C, cuando se programa bajo la API de windows una vez tienes tu codigo desarrollado, todo lo que haces es lo mismo que puedes hacer en VFP, colocar ciertas partes de tu codigo en un control en particular, en un metodo en particular, dentro de una clase en particular, para cuando se llame al evento que dispara el metodo, se ejecute y de tal forma realize una accion, pero sabemos que en C++ esto puede ser una tarea tediosa, si abres un proyecto nuevo en Visual Studio 2010 (no se si en anteriores) veras que te sale como especie de una ventana parecida al _screen del VFP una vez esta compilado, pero a diferencia de esta la mayoria de los Foxeros® hace lo que hace cualquiera y me incluyo, omiten esa parte, la esconden, y diseñan un formulario principal nuevo, solo que en C++ el codigo queda abierto para hacer las respectivas modificaciones como llamar un Toolbar o agregar controles a ese screen, etc, etc.

Basicamente lo que estoy haciendo por ahora es tomar el screen como ventana principal de mi programa para de ahi disparar los diferentes formularios en los que trabaja el programa en si, esto lo hago agregandole un objeto contenedor al screen, y dentro de este los controles que yo quiera definiendolo en una clase del mismo tipo. uno de los problemas que tenia era que no me mostraba el formulario de login, este basicamente te da una autorizacion para ingresar al programa, esto ya lo resolvi, lo que pasa ahora es que una vez se autoriza a la persona a usar el programa se cargan los demas controles (contenedor) y dentro del contenedor los demas controles como los botones que es basicamente lo que tengo ahorita. cuando se da la autorizacion, el formulario Login se tendria que destruir y darme paso a las opciones de los botones que estan en el screen para que el usuario tenga la posibilidad de operar el programa segun el nivel de permisologia.

¿Por que no hago lo que cualquiera haria?

Porque no todo en esta vida tiene que ser facil, ademas yo quiero usar los recursos que me da el _screen como el de que el formulario que se ejecute dentro de este no se puede desbordar fuera de la ventana, lo otro era lo que me decias, que era lo de las variables globales, no publicas, me ha sido de mucha ayuda tener variables que pueda usar y mantener vivas en toda la ejecucion del programa.

Las desventajas que he visto en esta manera de programar es probar el programa ya que como bien decias antes, es el formulario de visual foxpro lo cual tiene que cuando pruebas tu programa tiende a desestabilizar los elementos que tengas, segun las propiedades que puedas haber modificado.

Espero hacerme entender y ando todavia en busca de la respuesta, que ahora seria ¿Como salir de un formulario modal que se inicio con el _screen?

Saludos y un abrazo.

Christian Torres.
Venezuela.

GeoSys Diseño de Software

unread,
Feb 15, 2012, 5:51:24 PM2/15/12
to publice...@googlegroups.com
Pues si Christian, tendrías que hace las pregunta diferente, como por ejemplo, ¿Quien del foro programa en texto plano sin usar los recursos fáciles del entorno de VFP?.

Antes cuando era para DOS si se utilizaba todo desde texto plano y las pantallas había que hacerlas todo en código.

Luego vino lo gráfico y se notó el cambio.

Aquello era lento para hacer una aplicación productiva para luego distribuirla, creí que necesitabas aprender VFP para hacer aplicaciones productivas en poco tiempo.

Carlos Miguel FARIAS

unread,
Feb 15, 2012, 5:54:49 PM2/15/12
to publice...@googlegroups.com
Te recomendaría que leyeras y revisaras como esta hecha la aplicación de ejemplo que trae vfp, o ver algo de lo que generan los wizard.
En el screen podes hacer cualquier cosa, pero tienes que hacer muchas cosas raras.
Todos los eventos de un formulario, se pueden usar en el _screen, pero mientras que un formulario, podes diseñar clases formularios y luego crear formularios reales a partir de dichas clases, en el screen tienes que enlazar (bind...) los eventos del screen con los respectivos procedimientos y funciones. y todo eso es a mano y si bien es bueno para algunas cosas, puede ser engorroso en general.
No creo que se justifique usar el screen mas allá de un fondo de aplicación, para tener los componentes básicos que mencione (menú general, toolbar general, barra de estado y alguna cosita mas).
En vfp, se pueden hacer muchas cosas de muchas maneras diferentes (en un sitio habían recompilado como 200 formas de decir hola mundo en vfp).
En fin, tendrías que conseguirte algún buen libro (que los hay) para que aprender a estructurar tu aprendizaje, porque veo que se te mezclan mal cosas de muchas herramientas.

Saludos: Miguel, La Pampa (RA)

Fox Reloaded

unread,
Feb 15, 2012, 6:00:44 PM2/15/12
to publice...@googlegroups.com
Bueno creo que no me supe explicar, todos los formularios los tengo diseñados visualmente. Hasta el de login esta diseñado visualmente. Lo unico que programe en codigo plano fue el contenedor y los botones que lleva por dentro, pero creeme que no me llevo mas de 100 lineas de codigo hacerlo. Ahora te sorprenderia saber que la mayoria de aplicaciones de escritorio que comercialmente se venden, son realizados asi en texto plano, pero ya eso es otro caso aparte porque ellos llevan años desarrollando los millones de lineas de codigo que usan en sus programas. En fin, vuelvo a mi caso, yo lanzo el formulario de Login cuando inicia el _screen hasta ahi todo perfecto, el problema es cuando la autorizacion como tal es = .T. (en una condicion IF) deberia salir de ese formulario y mostrarme el _screen con todos sus controles guardados. cosa que no hace si bien sale del formulario y me muestra el screen, este formulario login se queda colgado sin nada mas que hacer... como si la instruccion thisform.release no le hiciera nada, en cambio la instruccion _screen.show() si sirviera.

Es extraño pero me esta pasando y tengo que encontrar como depurar este error (si es que lo es), yo no le veo nada de malo a usar el _screen para diseñar una ventana principal, pero si se me hace raro que me presente estos errores ya que logicamente no deberia.

Gracias por tus comentarios.

Carlos Miguel FARIAS

unread,
Feb 16, 2012, 6:09:42 AM2/16/12
to publice...@googlegroups.com
No sabria, sin ver el codigo que puede estar pasando para que no te
libere el formulario cuando haces un thisform.release

Saludos: Miguel, La Pampa (RA)

El 15/02/12, Fox Reloaded <extasis...@gmail.com> escribió:

>> *Saludos*
>> *
>> *
>> *Anthony Contreras Peralta*
>> *
>> *
>> *Costa Rica.*

>>>> *Saludos*
>>>> *
>>>> *
>>>> *Anthony Contreras Peralta.*
>>>> *
>>>> *
>>>> *Costa Rica.*

>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>> *ShowWindow (Propiedad)*


>>>>>>>
>>>>>>> Especifica si un formulario o una barra de herramientas es un
>>>>>>> formulario de nivel superior o secundario. Está disponible en tiempo
>>>>>>> de
>>>>>>> diseño; es de sólo lectura en tiempo de ejecución.
>>>>>>>

>>>>>>> *Form*.ShowWindow[ = *nExpr*]
>>>>>>> Valores de la propiedad
>>>>>>>
>>>>>>> *nExpr*
>>>>>>>
>>>>>>> Los valores de la propiedad *ShowWindow* son:


>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 0 En pantalla (valor predeterminado). Se trata de un formulario
>>>>>>> secundario que está colocado en la ventana principal de Visual
>>>>>>> FoxPro.
>>>>>>>
>>>>>>>
>>>>>>> 1 En formulario de nivel superior. Se trata de un formulario
>>>>>>> secundario del formulario de nivel superior activo, que puede ser la
>>>>>>> ventana principal de Visual FoxPro u otro formulario de nivel
>>>>>>> superior. Use
>>>>>>> esta opción si desea colocar el formulario secundario dentro del
>>>>>>> formulario
>>>>>>> de nivel superior activo.
>>>>>>>
>>>>>>> Si nExpr está establecido en 1 cuando el formulario de nivel superior
>>>>>>> es la ventana principal de Visual FoxPro, Visual FoxPro restablecerá
>>>>>>> automáticamente nExpr en 0.
>>>>>>>
>>>>>>>
>>>>>>> 2 Como un formulario de nivel superior. Se trata de un formulario de
>>>>>>> nivel superior en el que se pueden colocar formularios secundarios.
>>>>>>> Observe
>>>>>>> que un formulario de nivel superior es siempre no modal,
>>>>>>> independientemente
>>>>>>> de lo establecido en la propiedad WindowType.
>>>>>>>

>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>> *Observaciones*

>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>> *Saludos*
>>>>>>>
>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>> *Anthony Contreras Peralta*
>>>>>>>
>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>> *Costa Rica.*


>>>>>>>
>>>>>>> El 15 de febrero de 2012 08:52, Fox Reloaded <
>>>>>>> extasis...@gmail.com> escribió:
>>>>>>>
>>>>>>> Gracias por tu colaboracion Walter estare echando un ojo para
>>>>>>>> documentarme mas de este tema gracias :)
>>>>>>>>
>>>>>>>> Christian Torres.
>>>>>>>> Venezuela. * * * * * * * *
>>>>>>>>
>>>>>>>> 2012/2/15 Walter R. Ojeda Valiente <wr...@hotmail.com>
>>>>>>>>
>>>>>>>> Puedes descargar este documento:
>>>>>>>>>
>>>>>>>>> http://www.mediafire.com/?yi41z0y7z1fnol6
>>>>>>>>>
>>>>>>>>> Allí se explican los conceptos de clases y hay muchísimos ejemplos.
>>>>>>>>>
>>>>>>>>> Saludos.
>>>>>>>>>
>>>>>>>>> Walter.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>

>>>>>>>>> ------------------------------

Fox Reloaded

unread,
Feb 16, 2012, 7:54:00 AM2/16/12
to publice...@googlegroups.com
Bueno carlos, ayer estuve pensando (sin echar mano a codigo) en una manera de resolver esto, dame unas horas a ver si puedo hacer lo que pensaba y les comento en que quedo la solucion.

Un abrazo.

Christian Torres.
Venezuela.

2012/2/16 Carlos Miguel FARIAS <carlosmig...@gmail.com>

Fox Reloaded

unread,
Feb 16, 2012, 11:22:18 AM2/16/12
to publice...@googlegroups.com
Bueno les cuento a todos y a cada uno de los que siguieron este post y de antemano muchas gracias por toda su colaboracion, les cuento en que consistia la solucion, que en realidad es muy sencilla, al trabajar con el _screen, se tienen que trabajar creando instancias y clases de objeto formulario para que pueda tomarlas y algo muy importante (que olvide de bobo que soy xD) es la instruccion READ EVENTS colocada al final de la creacion o de las creaciones de estancias que se hayan hecho en el main principal, ya de ahi se puede programar en texto plano si asi se quisiera, pero creo haber dicho antes que solo me interesaba el FORM de Login de mi aplicacion y lo probe compilado y funciona de maravilla.

Es bueno por lo que veo trabajar con el _screen como ventana principal ya que se pueden hacer buenas cosas hasta donde es visto y puede llegar a ser facil xD

Espero que todos esten bien, y recuerden que siempre sera de mi parte bien recibida todas sus sugerencias, soluciones y demas.

Un abrazo a todos.

Christian Torres.
* * * * Venezuela.* * * *

2012/2/16 Fox Reloaded <extasis...@gmail.com>
Reply all
Reply to author
Forward
0 new messages