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.
Pierdo el Control del Foco
Pierdo el Control del Foco
Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a .F.,
otros con lVisible a .T. y otros a .F.
Bien, pues en alguna parte del programa llego a perder el "Foco" de la
aplicación y no se que control tiene el Foco.
Tiene que ser un control lVisible a .F., pues de TODOS los visibles ninguno
tiene el control.
Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
Alguna función me devuelve el control que actualmente tiene el foco????
algo así como
oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
para que me muestre en la barra de la ventana a tiempo real el control que
tiene el Foco
Gracias,
Un Saludo,
Xevi.
otros con lVisible a .T. y otros a .F.
Bien, pues en alguna parte del programa llego a perder el "Foco" de la
aplicación y no se que control tiene el Foco.
Tiene que ser un control lVisible a .F., pues de TODOS los visibles ninguno
tiene el control.
Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
Alguna función me devuelve el control que actualmente tiene el foco????
algo así como
oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
para que me muestre en la barra de la ventana a tiempo real el control que
tiene el Foco
Gracias,
Un Saludo,
Xevi.
Pierdo el Control del Foco
Por lo visto debo de hacerlo con FormChangeFocus...
METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS TFrmORAlbarans
::cText := oNextCtl:cVarName
RETURN Nil
Pero me lanza error de ejecución
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS TFrmORAlbarans
::cText := oNextCtl:cVarName
RETURN Nil
Pero me lanza error de ejecución
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Pierdo el Control del Foco
Reporte del Error
***************************** Registro de errores
*****************************
Fecha: 27/09/2006
Hora: 15:49:39
Memoria libre: 646872
Area actual: 3
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 1.0.2 Version 1.0b
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Home Edition 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TARRAYBROWSE:CVARNAME
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFRMORALBARANS:FORMCHANGEFOCUS (2790)
TFRMORALBARANS:ONCHANGEFOCUS (0)
TCONTROL:WMSETFOCUS (859)
TSTDCONTROL:WMSETFOCUS (142)
TWINCONTROL:WMSETFOCUS (220)
(b)XBROWSE:XBROWSE (252)
TARRAYBROWSE:WMSETFOCUS (0)
SETFOCUS (0)
TARRAYBROWSE:SETFOCUS (840)
TFOLDERPAGE:GOFIRSTCONTROL (200)
TFOLDERPAGE:WMSETFOCUS (212)
SETFOCUS (0)
TFOLDERPAGE:SETFOCUS (840)
TFOLDER:CHANGETAB (103)
TFOLDER:_NINDEX (340)
TFRMORALBARANS:FORMINITIALIZE (433)
TFRMORALBARANS:ONINITIALIZE (0)
TFRMORALBARANS:NEW (185)
XFRMORALBARANS (45)
(b)TFRMMENU:FORMINITIALIZE (142)
TMENUITEM:ONCLICK (0)
TMENU:DOACTION (213)
TMENU:DOACTION (218)
TFRMMENU:WMCOMMAND (866)
RUNFORM (0)
TAPPLICATION:RUN (193)
MAIN (24)
------------------ Información detallada de áreas de
trabajo ------------------
Area: 1
Alias: LINIESORALBARANS1
Registro: 31
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 2
Alias: INCIDENTSORALBARANS1
Registro: 1
Filtro:
Relación:
Orden del índice: 6
Clave activa: 6
Area: 3
Alias: ALBAR
Registro: 305
Filtro:
Relación:
Orden del índice: 19
Clave activa: 19
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a8069$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Por lo visto debo de hacerlo con FormChangeFocus...
>
> METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS TFrmORAlbarans
> ::cText := oNextCtl:cVarName
> RETURN Nil
>
>
> Pero me lanza error de ejecución
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
>
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>> .F., otros con lVisible a .T. y otros a .F.
>>
>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>> aplicación y no se que control tiene el Foco.
>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>> ninguno tiene el control.
>>
>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>>
>> Alguna función me devuelve el control que actualmente tiene el foco????
>>
>> algo así como
>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>
>> para que me muestre en la barra de la ventana a tiempo real el control
>> que tiene el Foco
>>
>> Gracias,
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
***************************** Registro de errores
*****************************
Fecha: 27/09/2006
Hora: 15:49:39
Memoria libre: 646872
Area actual: 3
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 1.0.2 Version 1.0b
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Home Edition 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TARRAYBROWSE:CVARNAME
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFRMORALBARANS:FORMCHANGEFOCUS (2790)
TFRMORALBARANS:ONCHANGEFOCUS (0)
TCONTROL:WMSETFOCUS (859)
TSTDCONTROL:WMSETFOCUS (142)
TWINCONTROL:WMSETFOCUS (220)
(b)XBROWSE:XBROWSE (252)
TARRAYBROWSE:WMSETFOCUS (0)
SETFOCUS (0)
TARRAYBROWSE:SETFOCUS (840)
TFOLDERPAGE:GOFIRSTCONTROL (200)
TFOLDERPAGE:WMSETFOCUS (212)
SETFOCUS (0)
TFOLDERPAGE:SETFOCUS (840)
TFOLDER:CHANGETAB (103)
TFOLDER:_NINDEX (340)
TFRMORALBARANS:FORMINITIALIZE (433)
TFRMORALBARANS:ONINITIALIZE (0)
TFRMORALBARANS:NEW (185)
XFRMORALBARANS (45)
(b)TFRMMENU:FORMINITIALIZE (142)
TMENUITEM:ONCLICK (0)
TMENU:DOACTION (213)
TMENU:DOACTION (218)
TFRMMENU:WMCOMMAND (866)
RUNFORM (0)
TAPPLICATION:RUN (193)
MAIN (24)
------------------ Información detallada de áreas de
trabajo ------------------
Area: 1
Alias: LINIESORALBARANS1
Registro: 31
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 2
Alias: INCIDENTSORALBARANS1
Registro: 1
Filtro:
Relación:
Orden del índice: 6
Clave activa: 6
Area: 3
Alias: ALBAR
Registro: 305
Filtro:
Relación:
Orden del índice: 19
Clave activa: 19
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a8069$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Por lo visto debo de hacerlo con FormChangeFocus...
>
> METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS TFrmORAlbarans
> ::cText := oNextCtl:cVarName
> RETURN Nil
>
>
> Pero me lanza error de ejecución
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
>
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>> .F., otros con lVisible a .T. y otros a .F.
>>
>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>> aplicación y no se que control tiene el Foco.
>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>> ninguno tiene el control.
>>
>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>>
>> Alguna función me devuelve el control que actualmente tiene el foco????
>>
>> algo así como
>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>
>> para que me muestre en la barra de la ventana a tiempo real el control
>> que tiene el Foco
>>
>> Gracias,
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
Pierdo el Control del Foco
Hola Xevi,
Creo que no me equivoco si te digo que si un control tiene lVisible := .F.
no toma el foco.
Entonces el foco debe tenerlo algún control 'no visible' pero sí con
lVisible := .T.
Puede ser cualquier control que tenga la propiedad lTabStop := .T. (y
obviamente lVisible := .T.). A veces me he encontrado con casos en los que
el foco lo tenía algún control de los que no cogen foco (tipo optionlist,
buttonbar, etc). Pero han sido casos excepcionales y por confusiones mías.
Tambien me he encontrado con situaciones en las que desde un formulario abro
otro formulario pero el oparent es un tercer formulario. En esa situación,
al cerrar el formulario, el foco no va al formulario llamante sino al padre
(uff que lío) pero el formulario visible (y con la barra azul del caption)
es el llamante.
Puedes consultar en todo momento cual control es el activo con la propiedad
del formulario activecontrol.
Saludos,
José Luis Capel
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Creo que no me equivoco si te digo que si un control tiene lVisible := .F.
no toma el foco.
Entonces el foco debe tenerlo algún control 'no visible' pero sí con
lVisible := .T.
Puede ser cualquier control que tenga la propiedad lTabStop := .T. (y
obviamente lVisible := .T.). A veces me he encontrado con casos en los que
el foco lo tenía algún control de los que no cogen foco (tipo optionlist,
buttonbar, etc). Pero han sido casos excepcionales y por confusiones mías.
Tambien me he encontrado con situaciones en las que desde un formulario abro
otro formulario pero el oparent es un tercer formulario. En esa situación,
al cerrar el formulario, el foco no va al formulario llamante sino al padre
(uff que lío) pero el formulario visible (y con la barra azul del caption)
es el llamante.
Puedes consultar en todo momento cual control es el activo con la propiedad
del formulario activecontrol.
Saludos,
José Luis Capel
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Pierdo el Control del Foco
Ups,
Donde dice...
>
> Puedes consultar en todo momento cual control es el activo con la
> propiedad del formulario activecontrol.
>
Es...
>
> Puedes consultar en todo momento cual control es el activo con la
> propiedad del formulario oactivecontrol.
>
Saludos,
José Luis Capel
Donde dice...
>
> Puedes consultar en todo momento cual control es el activo con la
> propiedad del formulario activecontrol.
>
Es...
>
> Puedes consultar en todo momento cual control es el activo con la
> propiedad del formulario oactivecontrol.
>
Saludos,
José Luis Capel
- ignacio
- Site Admin
- Mensajes: 9463
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Pierdo el Control del Foco
Xevi,
La propiedad cVarName no existe en tiempo de ejeución. Sólo en el IDE.
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=451a81a7@news.xailer.com...]451a81a7@news.xailer.com...[/email]
> Reporte del Error
>
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 27/09/2006
> Hora: 15:49:39
> Memoria libre: 646872
> Area actual: 3
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.0.2 Version 1.0b
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Home Edition 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Message not found
> Operación: TARRAYBROWSE:CVARNAME
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFRMORALBARANS:FORMCHANGEFOCUS (2790)
> TFRMORALBARANS:ONCHANGEFOCUS (0)
> TCONTROL:WMSETFOCUS (859)
> TSTDCONTROL:WMSETFOCUS (142)
> TWINCONTROL:WMSETFOCUS (220)
> (b)XBROWSE:XBROWSE (252)
> TARRAYBROWSE:WMSETFOCUS (0)
> SETFOCUS (0)
> TARRAYBROWSE:SETFOCUS (840)
> TFOLDERPAGE:GOFIRSTCONTROL (200)
> TFOLDERPAGE:WMSETFOCUS (212)
> SETFOCUS (0)
> TFOLDERPAGE:SETFOCUS (840)
> TFOLDER:CHANGETAB (103)
> TFOLDER:_NINDEX (340)
> TFRMORALBARANS:FORMINITIALIZE (433)
> TFRMORALBARANS:ONINITIALIZE (0)
> TFRMORALBARANS:NEW (185)
> XFRMORALBARANS (45)
> (b)TFRMMENU:FORMINITIALIZE (142)
> TMENUITEM:ONCLICK (0)
> TMENU:DOACTION (213)
> TMENU:DOACTION (218)
> TFRMMENU:WMCOMMAND (866)
> RUNFORM (0)
> TAPPLICATION:RUN (193)
> MAIN (24)
>
> ------------------ Información detallada de áreas de
> trabajo ------------------
>
> Area: 1
> Alias: LINIESORALBARANS1
> Registro: 31
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 2
> Alias: INCIDENTSORALBARANS1
> Registro: 1
> Filtro:
> Relación:
> Orden del índice: 6
> Clave activa: 6
>
> Area: 3
> Alias: ALBAR
> Registro: 305
> Filtro:
> Relación:
> Orden del índice: 19
> Clave activa: 19
>
>
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a8069$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Por lo visto debo de hacerlo con FormChangeFocus...
>>
>> METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS
>> TFrmORAlbarans
>> ::cText := oNextCtl:cVarName
>> RETURN Nil
>>
>>
>> Pero me lanza error de ejecución
>>
>> Gracias.
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>>
>> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
>> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>>> .F., otros con lVisible a .T. y otros a .F.
>>>
>>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>>> aplicación y no se que control tiene el Foco.
>>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>>> ninguno tiene el control.
>>>
>>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no
>>> ???
>>>
>>> Alguna función me devuelve el control que actualmente tiene el foco????
>>>
>>> algo así como
>>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>>
>>> para que me muestre en la barra de la ventana a tiempo real el control
>>> que tiene el Foco
>>>
>>> Gracias,
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>
>>
>
>
La propiedad cVarName no existe en tiempo de ejeución. Sólo en el IDE.
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=451a81a7@news.xailer.com...]451a81a7@news.xailer.com...[/email]
> Reporte del Error
>
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 27/09/2006
> Hora: 15:49:39
> Memoria libre: 646872
> Area actual: 3
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.0.2 Version 1.0b
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Home Edition 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Message not found
> Operación: TARRAYBROWSE:CVARNAME
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFRMORALBARANS:FORMCHANGEFOCUS (2790)
> TFRMORALBARANS:ONCHANGEFOCUS (0)
> TCONTROL:WMSETFOCUS (859)
> TSTDCONTROL:WMSETFOCUS (142)
> TWINCONTROL:WMSETFOCUS (220)
> (b)XBROWSE:XBROWSE (252)
> TARRAYBROWSE:WMSETFOCUS (0)
> SETFOCUS (0)
> TARRAYBROWSE:SETFOCUS (840)
> TFOLDERPAGE:GOFIRSTCONTROL (200)
> TFOLDERPAGE:WMSETFOCUS (212)
> SETFOCUS (0)
> TFOLDERPAGE:SETFOCUS (840)
> TFOLDER:CHANGETAB (103)
> TFOLDER:_NINDEX (340)
> TFRMORALBARANS:FORMINITIALIZE (433)
> TFRMORALBARANS:ONINITIALIZE (0)
> TFRMORALBARANS:NEW (185)
> XFRMORALBARANS (45)
> (b)TFRMMENU:FORMINITIALIZE (142)
> TMENUITEM:ONCLICK (0)
> TMENU:DOACTION (213)
> TMENU:DOACTION (218)
> TFRMMENU:WMCOMMAND (866)
> RUNFORM (0)
> TAPPLICATION:RUN (193)
> MAIN (24)
>
> ------------------ Información detallada de áreas de
> trabajo ------------------
>
> Area: 1
> Alias: LINIESORALBARANS1
> Registro: 31
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 2
> Alias: INCIDENTSORALBARANS1
> Registro: 1
> Filtro:
> Relación:
> Orden del índice: 6
> Clave activa: 6
>
> Area: 3
> Alias: ALBAR
> Registro: 305
> Filtro:
> Relación:
> Orden del índice: 19
> Clave activa: 19
>
>
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a8069$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Por lo visto debo de hacerlo con FormChangeFocus...
>>
>> METHOD FormChangeFocus( oSender, oPrevCtl, oNextCtl ) CLASS
>> TFrmORAlbarans
>> ::cText := oNextCtl:cVarName
>> RETURN Nil
>>
>>
>> Pero me lanza error de ejecución
>>
>> Gracias.
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>>
>> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
>> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>>> .F., otros con lVisible a .T. y otros a .F.
>>>
>>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>>> aplicación y no se que control tiene el Foco.
>>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>>> ninguno tiene el control.
>>>
>>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no
>>> ???
>>>
>>> Alguna función me devuelve el control que actualmente tiene el foco????
>>>
>>> algo así como
>>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>>
>>> para que me muestre en la barra de la ventana a tiempo real el control
>>> que tiene el Foco
>>>
>>> Gracias,
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9463
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Pierdo el Control del Foco
Xevi,
oForm:oActiveControl
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
oForm:oActiveControl
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Pierdo el Control del Foco
Bien, gracias por las respuestas.
Por lo visto todavía tengo mal entendida la programación con objetos.
No me aclaro mucho en cuando se debe forzar la destrucción de objetos de un
Form, por lo que de ahí esta pérdida del foco en un Form.
Ya lo he localizado, y se trata de un TEdit que creo en tiempo de ejecución,
en un método de la clase de un Browse y que no lo destruía.
Necesitaríamos de un inspector de objetos que en ejecución pudiésemos saber
qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos estan
vivitos y coleando.
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Por lo visto todavía tengo mal entendida la programación con objetos.
No me aclaro mucho en cuando se debe forzar la destrucción de objetos de un
Form, por lo que de ahí esta pérdida del foco en un Form.
Ya lo he localizado, y se trata de un TEdit que creo en tiempo de ejecución,
en un método de la clase de un Browse y que no lo destruía.
Necesitaríamos de un inspector de objetos que en ejecución pudiésemos saber
qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos estan
vivitos y coleando.
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
> .F., otros con lVisible a .T. y otros a .F.
>
> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
> aplicación y no se que control tiene el Foco.
> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
> ninguno tiene el control.
>
> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>
> Alguna función me devuelve el control que actualmente tiene el foco????
>
> algo así como
> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>
> para que me muestre en la barra de la ventana a tiempo real el control que
> tiene el Foco
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
>
Pierdo el Control del Foco
Xevi,
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
saber
> qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos estan
> vivitos y coleando.
>
Los objetos de Xailer que son controles se destruyen con el método ::End().
No obstante eso no es cierto del todo
Un objecto de xHarbour no se destruye hasta que pierde ámbito o lo igualamos
a NIL (por ejemplo).
Un control de Windows de Xailer se puede destruir con ::End(). Esto
destruye el control windows, pero no el objeto xHarbour.
Saludos,
José Luis Capel
PD: espero no haberme equivocado
)))))
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
saber
> qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos estan
> vivitos y coleando.
>
Los objetos de Xailer que son controles se destruyen con el método ::End().
No obstante eso no es cierto del todo

Un objecto de xHarbour no se destruye hasta que pierde ámbito o lo igualamos
a NIL (por ejemplo).
Un control de Windows de Xailer se puede destruir con ::End(). Esto
destruye el control windows, pero no el objeto xHarbour.
Saludos,
José Luis Capel
PD: espero no haberme equivocado

- ignacio
- Site Admin
- Mensajes: 9463
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Pierdo el Control del Foco
Xevi,
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
Ya existe un inspector de objetos en el depurador. No obstante si tu creas
un control y pierdes cualquier referencia al mismo el objeto de
xHarbour|Xailer se elimina, sin embargo, el control nativo de Windows sigue
ahí, vivito y coleando, por lo tanto necesitarias que la herramienta la
tuviese el propio Windows, y existe, se llama WinSpy, pero dudo que te
merezca la pena usarla para esto.
Yo simplemente te recomiendo que seas más cuidadoso con cualquier tipo de
control que crees tu a mano, digase TEdits, TPictures, TFonts, etcetera.
Xailer es capaz de eliminar todos los controles que dependan de un
formulario contenedor, pero cuando no es así, como por ejemplo, en la
creación de un Font para utilizar en un determinado listado, es
responsabilidad del programador eliminarlo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451abe54$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Bien, gracias por las respuestas.
>
> Por lo visto todavía tengo mal entendida la programación con objetos.
> No me aclaro mucho en cuando se debe forzar la destrucción de objetos de
> un Form, por lo que de ahí esta pérdida del foco en un Form.
> Ya lo he localizado, y se trata de un TEdit que creo en tiempo de
> ejecución, en un método de la clase de un Browse y que no lo destruía.
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>> .F., otros con lVisible a .T. y otros a .F.
>>
>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>> aplicación y no se que control tiene el Foco.
>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>> ninguno tiene el control.
>>
>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>>
>> Alguna función me devuelve el control que actualmente tiene el foco????
>>
>> algo así como
>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>
>> para que me muestre en la barra de la ventana a tiempo real el control
>> que tiene el Foco
>>
>> Gracias,
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
Ya existe un inspector de objetos en el depurador. No obstante si tu creas
un control y pierdes cualquier referencia al mismo el objeto de
xHarbour|Xailer se elimina, sin embargo, el control nativo de Windows sigue
ahí, vivito y coleando, por lo tanto necesitarias que la herramienta la
tuviese el propio Windows, y existe, se llama WinSpy, pero dudo que te
merezca la pena usarla para esto.
Yo simplemente te recomiendo que seas más cuidadoso con cualquier tipo de
control que crees tu a mano, digase TEdits, TPictures, TFonts, etcetera.
Xailer es capaz de eliminar todos los controles que dependan de un
formulario contenedor, pero cuando no es así, como por ejemplo, en la
creación de un Font para utilizar en un determinado listado, es
responsabilidad del programador eliminarlo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:451abe54$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Bien, gracias por las respuestas.
>
> Por lo visto todavía tengo mal entendida la programación con objetos.
> No me aclaro mucho en cuando se debe forzar la destrucción de objetos de
> un Form, por lo que de ahí esta pérdida del foco en un Form.
> Ya lo he localizado, y se trata de un TEdit que creo en tiempo de
> ejecución, en un método de la clase de un Browse y que no lo destruía.
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
> 451a7ceb$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Tengo un Form con bastantes controles, unos con lEnabled a .T. otros a
>> .F., otros con lVisible a .T. y otros a .F.
>>
>> Bien, pues en alguna parte del programa llego a perder el "Foco" de la
>> aplicación y no se que control tiene el Foco.
>> Tiene que ser un control lVisible a .F., pues de TODOS los visibles
>> ninguno tiene el control.
>>
>> Cuando un Objeto está a lVisible .F. ¿no debería de coger el foco, no ???
>>
>> Alguna función me devuelve el control que actualmente tiene el foco????
>>
>> algo así como
>> oForm:OnChangeFoco := {|| oForm:cText := oControlConFoco }
>>
>> para que me muestre en la barra de la ventana a tiempo real el control
>> que tiene el Foco
>>
>> Gracias,
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Pierdo el Control del Foco
Xevi,
> Por lo visto todavía tengo mal entendida la programación con objetos.
> No me aclaro mucho en cuando se debe forzar la destrucción de objetos de
> un Form, por lo que de ahí esta pérdida del foco en un Form.
> Ya lo he localizado, y se trata de un TEdit que creo en tiempo de
> ejecución, en un método de la clase de un Browse y que no lo destruía.
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
Como bien te ha dicho Ignacio, si creas un control y eliminas cualquier
referencia a él, el objeto se destruirá, pero el control de windows seguirá
estando. No obstante, cuando se destruye el formulario también se destruyen
todos los controles que contenga, tanto si están representados por un objeto
a nivel de Xailer como si no.
En tu caso parece que no estabas cerrando el formulario, y claro, como el
control sí existía windows le pasa el foco, pero al no tener el objeto a
nivel Xailer, Xailer no se puede enterar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Por lo visto todavía tengo mal entendida la programación con objetos.
> No me aclaro mucho en cuando se debe forzar la destrucción de objetos de
> un Form, por lo que de ahí esta pérdida del foco en un Form.
> Ya lo he localizado, y se trata de un TEdit que creo en tiempo de
> ejecución, en un método de la clase de un Browse y que no lo destruía.
>
> Necesitaríamos de un inspector de objetos que en ejecución pudiésemos
> saber qué oBjetos hemos olvidado destruir o mas bien dicho, que objetos
> estan vivitos y coleando.
Como bien te ha dicho Ignacio, si creas un control y eliminas cualquier
referencia a él, el objeto se destruirá, pero el control de windows seguirá
estando. No obstante, cuando se destruye el formulario también se destruyen
todos los controles que contenga, tanto si están representados por un objeto
a nivel de Xailer como si no.
En tu caso parece que no estabas cerrando el formulario, y claro, como el
control sí existía windows le pasa el foco, pero al no tener el objeto a
nivel Xailer, Xailer no se puede enterar.
--
Un saludo,
José F. Giménez
http://www.xailer.com