FoxPro/Visual FoxPro - Handle de un formulario

 
Vista:

Handle de un formulario

Publicado por Ruben Antunes (46 intervenciones) el 10/08/2006 23:43:16
Como se averigua el handle de un formulario en Nivel Superior.
Ruben
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
sin imagen de perfil

RE:Handle de un formulario

Publicado por jesus cordero (405 intervenciones) el 11/08/2006 00:10:49
si hablas de "Header", ve la ayuda :

Header (Objeto: propiedades, métodos y eventos)
Header (Objeto) | HEADER( ) (Función) | HeaderHeight (Propiedad)
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

RE:Handle de un formulario

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/08/2006 00:20:44
Revisa este ejemplo

DO Form HOME(2)+"...\Samples\Solution\Ffc\whandler.scx"

espero te sirva

Suerte
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:Handle de un formulario

Publicado por Ruben Antunes (46 intervenciones) el 11/08/2006 00:56:38
**************************************************************************
*cCaption="Titulo/Caption del Formulario de Nivel Superior
*_NombreFormulario="Nombre del Formulario en Nivel Superior
************************************************************************
FUNCTION ActivaVentana
LParameters cCaption,_NombreFormulario
LOCAL nHWD
DECLARE INTEGER FindWindow IN WIN32API STRING cNULL, STRING cWinName
DECLARE SetForegroundWindow IN WIN32API INTEGER nHandle
DECLARE SetActiveWindow IN WIN32API INTEGER nHandle
DECLARE ShowWindow IN WIN32API INTEGER nHandle, INTEGER nState
DECLARE INTEGER GetActiveWindow IN user32
DECLARE INTEGER GetWindowDC IN user32 INTEGER hwnd
If PCount()=1
EndIf
_NombreFomulario=''

nHWD = FindWindow(0, cCaption)
IF nHWD > 0
* VENTANA YA ACTIVA
* LA "LLAMAMOS":
ShowWindow(nHWD,9)

* LA PONEMOS ENCIMA
SetForegroundWindow(nHWD)

* LA ACTIVAMOS
SetActiveWindow(nHWD)
RETURN .T.
ELSE
************************************************************************
*aqui coloco el nombre del formulario al que quiero saber si esta
*en ejecucion
************************************
If !Empty(_NombreFormulario)
If FormulOpen(_NombreFormulario)
nHWD=GetActiveWindow()
* VENTANA YA ACTIVA
* LA "LLAMAMOS":
ShowWindow(nHWD,9)

* LA PONEMOS ENCIMA
SetForegroundWindow(nHWD)

* LA ACTIVAMOS
SetActiveWindow(nHWD)
RETURN(.T.)
Else
RETURN(.F.)
EndIf
Else
* VENTANA NO ACTIVA
RETURN .F.
EndIf
ENDIF

Con la función que coloco arriba puedo detectar si un Formulario de Nivel Superior esta activado, pero para un formulario en Nivel Superior tuve que agregar las lineas que estan comentadas como Formulario en Nivel Superior
El problema que tengo es que no se activa la ventana ni la posiciona encima.
Pero seguire buscando. Gracias.
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:Handle de un formulario

Publicado por Ruben Antunes (46 intervenciones) el 11/08/2006 00:58:08
Lamentablemente el archivo al que haces referencia no lo tengo por más que he instalado la versión Original del VFP6.
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