Formularios abiertos

845 views
Skip to first unread message

Carlos Alberto Cisneros Madrid

unread,
Nov 15, 2011, 5:03:01 PM11/15/11
to VFP publicesvfoxpro@googlegroups.com
Como identificar que formularios estan abiertos? Existe algun comando?

Fabricio

unread,
Nov 15, 2011, 5:16:27 PM11/15/11
to Comunidad de Visual Foxpro en Español
Puedes saberlo consultando el contenedor _Screen.Forms

Saludos

Fabricio

On 15 nov, 16:03, "Carlos Alberto Cisneros Madrid "

Victor Espina

unread,
Nov 15, 2011, 7:20:53 PM11/15/11
to publice...@googlegroups.com

Victor Espina

unread,
Nov 15, 2011, 7:20:59 PM11/15/11
to publice...@googlegroups.com
Complementando la respuesta de Fabricio:

a) Saber cuantos forms hay creados (que no necesariamente visibles):

 nCount = _Screen.FormCount


b) Recorrer todos los forms creados:

LOCAL oForm
FOR EACH oForm IN _Screen.Forms
 ...
ENDFOR


c) Contar la cantidad de forms visibles (ya que "activo" solo puede haber uno)

LOCAL nVisibles, oForm
nVisible = 0
FOR EACH oForm IN _Screen.Forms
 IF oForm.Visible
  nVisibles = nVisibles + 1
 ENDIF
ENDFOR


d) Determinar cual es el form activo (si es que hay uno)

IF ISNULL(_Screen.activeForm)
  MESSAGEBOX("No hay un form activo")
  RETURN
ENDIF

WITH _Screen.activeForm
 ...
ENDWITH


Saludos

Victor Espina

Carlos Alberto Cisneros Madrid

unread,
Nov 15, 2011, 7:59:58 PM11/15/11
to publice...@googlegroups.com
Gracias, es porque tengo problemas para trabajar con varios formularios a la vez, siempre me genera un error que me dice "no hay acceso a la tabla seleccionda".

sip...@gmail.com

unread,
Nov 16, 2011, 7:05:37 AM11/16/11
to publice...@googlegroups.com
Gracias, es porque tengo problemas para trabajar con varios formularios a la vez, siempre me genera un error que me dice "no hay acceso a la tabla seleccionda".

Hola amigo , tu problema debe ser que en algun lugar del código de ese form estas cerrando la tabla o cursor o que otro form secundario lo haga
Mi consejo es que uses entorno privado de datos en los form principales y que usés
use ín [nombretabla ] para cerrarla explícitamente
Saludos
Alexander Barreto
Venezuela
Enviado desde mi BlackBerry de Movistar

From: "Carlos Alberto Cisneros Madrid " <ccis...@hotmail.com>
Date: Wed, 16 Nov 2011 00:59:58 +0000
Subject: RE: [vfp] Re: Formularios abiertos

Daniel Sánchez

unread,
Nov 16, 2011, 8:03:41 AM11/16/11
to publice...@googlegroups.com
Normalmente trabajo con formularios con sesión de datos privadas, así cada formulario gestiona el manejo de sus tablas y no pueden ser cerradas desde otro formulario ya que no tienen acceso a ellas, y no tengo mayor problema.

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Fabricio

unread,
Nov 16, 2011, 8:07:00 AM11/16/11
to Comunidad de Visual Foxpro en Español
Si abres varios formularios de forma simultanea, debes usar sesión
privada de datos para evitar estos inconvenientes, de tal forma que
las tablas abiertas por un formularios no las puede cerrar otro
formulario y viceversa.

Toma en cuenta que también existe la sesión predeterminada que no
corresponde a ningún formulario, la que está accesible cuando ejecutas
un .prg.

Saludos

Fabricio

On 15 nov, 18:59, "Carlos Alberto Cisneros Madrid "

Carlos Miguel FARIAS

unread,
Nov 16, 2011, 9:27:27 AM11/16/11
to publice...@googlegroups.com
O utilizas una clase que abra las tablas para ese formulario (que puede tener o no sesion privada de datos).
Esa clase puede encargarse de por ejemplo chequear si la tabla que se va a abrir, fue cerrada correctamente y disparar un reindex si detecta que no se cerro por orden de programa o chequear que la tabla esta haciendo usada por otra aplicacion o formulario en modo exclusivo. O dejar una marca que cuando se pueda se compacte, o pedir que se abra en modo exclusivo y avise que no se puede.
Reply all
Reply to author
Forward
0 new messages