TE AGRADEZCO TODA AYUDA.
HICE LA PRUEBA Y NO FUNCIONA
¿ O QUE ESTOY HACIENDO MAL ?
TENGO UN BOTON QUE LLAMA AL FORMULARIO CLIENTES
EJEMPLO:
Clientes():new( self ):show()
COMO O EN DONDE PONGO ESTA FUNCION O PROCEDURE
GRACIAS DE NUEVO.
PROCEDURE xFrmClients(oSender)
local nAscan
Local aForms := Application:aForms
ProcessMessages()
If (nAscan := aScan( aForms , {|o| o:ClassName() ==
TFrmClients():ClassName() } )) = 0
If (nAscan := aScan( aForms , {|o| o:ClassName() ==
TFrmEmpreses():ClassName() .or. o:ClassName() ==
TFrmIndexar():ClassName() } )) # 0
xSortir( oSender )
Return
EndIf
Else
aForms[nAScan]:SetFocus()
Return
EndIf
TFrmClients():New():Show()
RETURN
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
para Xevi.
-
- Mensajes: 19
- Registrado: Vie Abr 06, 2007 3:46 am
-
- Mensajes: 133
- Registrado: Lun May 22, 2006 10:26 am
para Xevi.
Te escribo esto al vuelo, pruebalo y me avisas como te fue
Saludos
Si estas abriendo el formulario clientes desde un boton te sugiero las
siguientes 2 opciones :
1) Si quieres que simplemente no se pueda volver a hacer click en el
boton hasta que se cierre el formulario clientes:
En el formulario que contiene a oBotonClientes :
DATA oClientes
En el evento OnClick del boton :
oSender:lEnabled:=.f.
oClientes:=TClientes():new( self ):show()
En el evento OnDestroy() de oClientes :
::oParent:oBotonClientes:lEnabled:=.t.
2) Si quieres que en caso de que oClientes ya este abierto y si el
usuario da click nuevamente en el boton oBotonClientes el formulario
oClientes reciba el foco :
En el formulario que contiene a oBotonClientes :
DATA oClientes
DATA lClientesAbierto INIT .f.
En el evento onClick de oBotonClientes :
IF !::lClientesAbierto
oClientes():=TClientes():new( self ):show()
lClientesAbierto:=.t.
ELSE
oClientes:SetFocus()
END
En el evento OnDestroy de oClientes :
::Parent:lClientesAbierto:=.f.
Saludos
Si estas abriendo el formulario clientes desde un boton te sugiero las
siguientes 2 opciones :
1) Si quieres que simplemente no se pueda volver a hacer click en el
boton hasta que se cierre el formulario clientes:
En el formulario que contiene a oBotonClientes :
DATA oClientes
En el evento OnClick del boton :
oSender:lEnabled:=.f.
oClientes:=TClientes():new( self ):show()
En el evento OnDestroy() de oClientes :
::oParent:oBotonClientes:lEnabled:=.t.
2) Si quieres que en caso de que oClientes ya este abierto y si el
usuario da click nuevamente en el boton oBotonClientes el formulario
oClientes reciba el foco :
En el formulario que contiene a oBotonClientes :
DATA oClientes
DATA lClientesAbierto INIT .f.
En el evento onClick de oBotonClientes :
IF !::lClientesAbierto
oClientes():=TClientes():new( self ):show()
lClientesAbierto:=.t.
ELSE
oClientes:SetFocus()
END
En el evento OnDestroy de oClientes :
::Parent:lClientesAbierto:=.f.
para Xevi.
Pedro,
Sencillo,
en lugar de poner
Clientes():new( self ):show()
en el botón que llama al formulario CLIENTES...
llama a esta procedure!!!
xFrmClients(oSender)
ésta será la encargada de comrpobar si esta abierta y de no estarlo, crearla
y si ya está creada, mostrarla.
OJO con los nombres de Formularios que yo utilizo en el ejemplo y los tuyos
que utilizas realmente en el proyecto!!!
Un Saludo,
Xevi.
"Pedro de Leon Rodas" <pedro_deleon@hotmail.com> escribió en el mensaje
news:[email=463a9cf3@ozsrv2.ozlan.local...]463a9cf3@ozsrv2.ozlan.local...[/email]
> TE AGRADEZCO TODA AYUDA.
>
> HICE LA PRUEBA Y NO FUNCIONA
> ¿ O QUE ESTOY HACIENDO MAL ?
>
> TENGO UN BOTON QUE LLAMA AL FORMULARIO CLIENTES
> EJEMPLO:
> Clientes():new( self ):show()
>
> COMO O EN DONDE PONGO ESTA FUNCION O PROCEDURE
>
> GRACIAS DE NUEVO.
>
>
>
> PROCEDURE xFrmClients(oSender)
> local nAscan
> Local aForms := Application:aForms
>
> ProcessMessages()
>
> If (nAscan := aScan( aForms , {|o| o:ClassName() ==
> TFrmClients():ClassName() } )) = 0
> If (nAscan := aScan( aForms , {|o| o:ClassName() ==
> TFrmEmpreses():ClassName() .or. o:ClassName() ==
> TFrmIndexar():ClassName() } )) # 0
> xSortir( oSender )
> Return
> EndIf
> Else
> aForms[nAScan]:SetFocus()
> Return
> EndIf
>
> TFrmClients():New():Show()
>
> RETURN
>
>
>
Sencillo,
en lugar de poner
Clientes():new( self ):show()
en el botón que llama al formulario CLIENTES...
llama a esta procedure!!!
xFrmClients(oSender)
ésta será la encargada de comrpobar si esta abierta y de no estarlo, crearla
y si ya está creada, mostrarla.
OJO con los nombres de Formularios que yo utilizo en el ejemplo y los tuyos
que utilizas realmente en el proyecto!!!
Un Saludo,
Xevi.
"Pedro de Leon Rodas" <pedro_deleon@hotmail.com> escribió en el mensaje
news:[email=463a9cf3@ozsrv2.ozlan.local...]463a9cf3@ozsrv2.ozlan.local...[/email]
> TE AGRADEZCO TODA AYUDA.
>
> HICE LA PRUEBA Y NO FUNCIONA
> ¿ O QUE ESTOY HACIENDO MAL ?
>
> TENGO UN BOTON QUE LLAMA AL FORMULARIO CLIENTES
> EJEMPLO:
> Clientes():new( self ):show()
>
> COMO O EN DONDE PONGO ESTA FUNCION O PROCEDURE
>
> GRACIAS DE NUEVO.
>
>
>
> PROCEDURE xFrmClients(oSender)
> local nAscan
> Local aForms := Application:aForms
>
> ProcessMessages()
>
> If (nAscan := aScan( aForms , {|o| o:ClassName() ==
> TFrmClients():ClassName() } )) = 0
> If (nAscan := aScan( aForms , {|o| o:ClassName() ==
> TFrmEmpreses():ClassName() .or. o:ClassName() ==
> TFrmIndexar():ClassName() } )) # 0
> xSortir( oSender )
> Return
> EndIf
> Else
> aForms[nAScan]:SetFocus()
> Return
> EndIf
>
> TFrmClients():New():Show()
>
> RETURN
>
>
>