Nombre del Objeto en oDlg:aControls

Nombre del Objeto en oDlg:aControls

Postby jvargas » Sun Jul 08, 2007 6:50 pm

En \fwh\samples\testfoc2.prg hay una rutina Cntllsearch donde se puede indagar qué control tiene el foco. En el array de oDlg:aControls se podria incluir el nombre del Objeto?. ademas de su Id. seria de gran ayuda al momento de hacer el debug.
Muchas gracias
Jorge Vargas
FW-705, xHarbour 0.99.71 (SimpLex) , bcc55
jvargas
 
Posts: 63
Joined: Sun Apr 08, 2007 9:50 pm
Location: Lima Perú

Postby Antonio Linares » Mon Jul 09, 2007 2:00 pm

Jorge,

Puedes saber el nombre de la clase del objeto:

oDlg:aControls[ n ]:ClassName()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41205
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jvargas » Wed Jul 11, 2007 10:21 pm

Hola Antonio.
Gracias por tu respuesta
Esta bien el Nombre de la Clase del Objeto, pero lo que necesito es el Nombre del Objeto. Imagínate que hay muchos Gets o Botones y deseo saber cuál de todos ellos tiene el foco.
Saludos
Jorge Vargas
FW-705, xHarbour 0.99.71 (SimpLex) , bcc55
jvargas
 
Posts: 63
Joined: Sun Apr 08, 2007 9:50 pm
Location: Lima Perú

Postby thefull » Sat Feb 16, 2008 11:09 am

jvargas wrote:Hola Antonio.
Gracias por tu respuesta
Esta bien el Nombre de la Clase del Objeto, pero lo que necesito es el Nombre del Objeto. Imagínate que hay muchos Gets o Botones y deseo saber cuál de todos ellos tiene el foco.
Saludos
Jorge Vargas

Bueno, una manera 'simple' seria dotarle tu el nombre, es decir, usando la variable cargo.

@1,1 GET oGet VAR cNombre OF oDlg
oGet:Cargo := "Nombre"

Lógicamente esto depende de ti, porque que yo sepa, los objetos no tienen nombre, si no de que tipo de clase es, ademas, tienes un oBj:hWnd que identifica al objeto en cuestion , pero eso no te ayudará en nada.

Recuerdo que tuve que realizar alguna cosa similar por temas de un codigo clipper y manteniendo la compatibilidad, esa era la opcion más sencilla, y recuerdo que ¿ ReadVar() ? devolvian el nombre de la variable en la que estabas, en este caso debería dar "cNombre", pero no estoy muy seguro que funcione.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Postby Antonio Linares » Sun Feb 17, 2008 3:08 am

Jorge,

Puedes hacerlo así:

oControlConFoco = oDlg:aControls[ AScan( oDlg:aControls, { | o | o:lFocused } ) ]
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41205
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jvargas » Fri Feb 22, 2008 3:41 pm

Hola Rafa. Hola Antonio: Muchas gracias por la respuesta de ambos.
Los objetos tienen dentro de sí muchas propiedades: la clase, el valor, el ID, el texto, de los que he podido identificar.
En la sentencia: @01,01 GET oFactu VAR wFactu .......
Alguna de las propiedades del objeto podría tener “oFactu” y con una funcion por ejemplo:
WhoHasFocus() que te devuelva ->“oFactu” se puede hacer :
oFactu:oJump := oFecha. Así de simple, así de rápido, así de fácil.
Este pedido es porque SetFocus() no siempre funciona, y buscando las razones y quién se quedó con el foco, empiezas a perder la paciencia, además de tu valioso tiempo.
Un software como FiveWin merece tener todo tipo de ayuda al usuario.
La función ReadVar() te devuelve “OBJETO”, que tampoco es de tanta ayuda y
oControlConFoco = oDlg:aControls[ AScan( oDlg:aControls, { | o | o:lFocused } ) ] devuelve el ID del Objeto.
otra vez gracias por la atención a este asunto
Saludos
Jorge Vargas
FW-705, xHarbour 0.99.71 (SimpLex) , bcc55
jvargas
 
Posts: 63
Joined: Sun Apr 08, 2007 9:50 pm
Location: Lima Perú


Return to To do - WishList / Por hacer - Peticiones

Who is online

Users browsing this forum: No registered users and 5 guests