Ayuda con manejo de controles

HMG en Español

Moderator: Rathinagiri

User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Ayuda con manejo de controles

Post by ndarz »

Lo que quiero hacer es lo siguiente:
necesito saber como determinar que control esta en foco en una ventana.
Desde ya muchas gracias.
User avatar
pctoledo
Posts: 123
Joined: Wed Aug 25, 2010 10:45 am
Location: Araçatuba - SP - Brazil
Contact:

Re: Ayuda con manejo de controles

Post by pctoledo »

Controle esta en foco:

Code: Select all

cControlName:=This.FocusedControl
Ventana:

Code: Select all

cParentForm:=ThisWindow.Name
Regards/Saludos,

Toledo

Clipper On Line
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Ayuda con manejo de controles

Post by andyglezl »

Hay un demo que quizá te sirva en:

\HMG\3.4\SAMPLES\Controls\Grid\GRID_40
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: Ayuda con manejo de controles

Post by ndarz »

Andres ese ejemplo es para el control dentro del grid, ya lo habia visto, igualmente gracias por responder voy a probar con This.FocusedControl que me sugiere toledo.
despues les cuento.
muchas gracias.
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: Ayuda con manejo de controles

Post by ndarz »

Toledo, me sabrias decir donde hay documentacion sobre esa sentencia, no encontre nada por ningun lado
User avatar
pctoledo
Posts: 123
Joined: Wed Aug 25, 2010 10:45 am
Location: Araçatuba - SP - Brazil
Contact:

Re: Ayuda con manejo de controles

Post by pctoledo »

Mirar:
C:/hmg.3.4.2/DOC/data/Navigator.htm

- Properties
Regards/Saludos,

Toledo

Clipper On Line
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Ayuda con manejo de controles

Post by andyglezl »

ndarz, ese ejemplo consta de 2 partes, esta es la que te puede servir.

Code: Select all

#include "hmg.ch"

FUNCTION Main

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 400 ;
		HEIGHT 300 ; 
		TITLE "Demo: Enable/Disable Window/Control Event" ;
		ON GOTFOCUS Form_ONGOTFOCUS();
		MAIN 
		
		@ 50,  50 BUTTON Button_1 CAPTION "Click" ACTION MsgInfo ("Hello")
		@ 100, 50 BUTTON Button_2 CAPTION "Minimize" ACTION Form_1.Minimize
		@ 150, 50 TIMEPICKER TimePicker_1 ON GOTFOCUS Control_ONGOTFOCUS ()
	END WINDOW

	CENTER WINDOW Form_1
	ACTIVATE WINDOW Form_1
RETURN
PROCEDURE Form_ONGOTFOCUS
	LOCAL i := GetLastActiveControlIndex ()
	DISABLE WINDOW EVENT OF Form_1
	MsgInfo ("ON GOTFOCUS: Form_1 " + IIF (i > 0," - Last Control Focused : "+_HMG_SYSDATA [2] [i],""))
	ENABLE WINDOW EVENT OF Form_1
RETURN
PROCEDURE Control_ONGOTFOCUS
	LOCAL i := GetLastActiveFormIndex ()
	DISABLE WINDOW EVENT OF Form_1                  //   -->   StopWindowEventProcedure ("Form_1", .T.)
	DISABLE CONTROL EVENT TimePicker_1 OF Form_1    //   -->   StopControlEventProcedure ("TimePicker_1", "Form_1", .T.)
	MsgInfo ("ON GOTFOCUS: TimePicker_1" + IIF (i > 0," - Last Form Focused : "+_HMG_SYSDATA [66] [i],""))
	ENABLE CONTROL EVENT TimePicker_1 OF Form_1     //   -->   StopControlEventProcedure ("TimePicker_1", "Form_1", .F.)
	ENABLE WINDOW EVENT OF Form_1                   //   -->   StopWindowEventProcedure ("Form_1", .F.)
RETURN
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: Ayuda con manejo de controles

Post by ndarz »

Toledo, gracias por tu ayuda, use (cControlName:=This.FocusedControl) no se si la has usado, no da error asi que esta bien pero me encontre con el problema de que la variable me queda vacia, no se por que?

Andres, el ejemplo ese esta perfecto pero es para saber cual control deja el foco, funciona correctamente.

El problema que tenia era el siguiente, cuando abria una ventana el foco quedaba en un TextBox no editable, y tenia que quedar en el TextBox siguiente y no habia forma de que lo hiciera, pusira el SetFocus donde lo pusiera o como lo pusiera no daba foco en dicho TexBox, la solucion fue la siguiente, en el textbox no editable coloque en OnGotFocus el SetFocus hacia el otro TextBox.

Muchisimas gracias por su tiempo y ayuda.
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: Ayuda con manejo de controles

Post by ndarz »

No se si no la enrrede mucho en la explicacion, asi que aca esta lo que hice

Code: Select all

    DEFINE TEXTBOX Text_cod
        ROW    30
        COL    200
        WIDTH  60
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS nuevocliente.Text_Apellido.SetFocus    //esto es lo que hice
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .T.
        RIGHTALIGN .F.
        DISABLEDBACKCOLOR Nil
        DISABLEDFONTCOLOR Nil
        CASECONVERT NONE
        MAXLENGTH 3
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        NUMERIC .T. 
        VALUE Nil
    END TEXTBOX
User avatar
Roberto Lopez
HMG Founder
Posts: 4012
Joined: Wed Jul 30, 2008 6:43 pm

Re: Ayuda con manejo de controles

Post by Roberto Lopez »

ndarz wrote: El problema que tenia era el siguiente, cuando abria una ventana el foco quedaba en un TextBox no editable, y tenia que quedar en el TextBox siguiente y no habia forma de que lo hiciera, pusira el SetFocus donde lo pusiera o como lo pusiera no daba foco en dicho TexBox, la solucion fue la siguiente, en el textbox no editable coloque en OnGotFocus el SetFocus hacia el otro TextBox.
Lo que tienes que hacer, es definir la propiedad TABSTOP del control como .F. de esta forma, nunca recibirá el foco.

////

You must define TABSTOP as .F., this way, the control will never receive the focus.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)
Post Reply