No ejecutar acción inicio objeto combobox (SOLUCIONADO)

No ejecutar acción inicio objeto combobox (SOLUCIONADO)

Postby leandro » Mon Dec 07, 2020 10:29 pm

Buenas tardes para todos,

Tengo un combobox definido de la siguiente manera:
Code: Select all  Expand view  RUN

@ oBrwAr:nBottom + 1, nW-69 COMBOBOX oCmList VAR nCmList ITEMS aCmList SIZE 44,24 PIXEL OF oP ;
            STYLE CBS_DROPDOWNLIST ON CHANGE actArticuloArray()
 


Pero resulta que al mismo momento que se crea el objeto se ejecuta el on change, lo que necesito es que no se ejecute la acción si no hasta el momento que se haga un cambio después de hacer click.

No se, si me hice entender :oops:

De antemano gracias
Last edited by leandro on Mon Dec 14, 2020 7:32 pm, edited 1 time in total.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: No ejecutar acción al inicio del objeto combobox

Postby karinha » Tue Dec 08, 2020 10:00 pm

Maybe:

Code: Select all  Expand view  RUN

   ON CHANGE( IIF( lCondicion, actArticuloArray() ) )
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7844
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No ejecutar acción al inicio del objeto combobox

Postby leandro » Thu Dec 10, 2020 10:39 pm

Amigo gracias por responder, hice la prueba pero no funciona... parece que bloquea el evento ON CHANGE.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: No ejecutar acción al inicio del objeto combobox

Postby JESUS MARIN » Fri Dec 11, 2020 6:46 am

Buenos dias Leandro.

Acabo de probar el siguiente código y no se ejecuta el ON CHANGE al iniciarse.

Code: Select all  Expand view  RUN


LOCAL oCmList, nCmList, aCmList:={"uno","dos","tres"}

....

@ 50, 10 COMBOBOX oCmList VAR nCmList ITEMS aCmList SIZE 60,240 PIXEL OF oWnd ;
            STYLE CBS_DROPDOWNLIST ON CHANGE msgalert("ha cambiado") FONT oFont

 


¿durante la creación del DIALOGO o VENTANA, estás asignando valores a nCmList o aCmList ?
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: No ejecutar acción al inicio del objeto combobox

Postby leandro » Sun Dec 13, 2020 11:50 am

Amigo como vas?

Gracias por responder

Efectivamente durante el inicio del dialogo es que se asignan los valores al COMBOBOX
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: No ejecutar acción al inicio del objeto combobox

Postby JESUS MARIN » Mon Dec 14, 2020 6:41 am

Buenos dias.
Por tanto, en esa asignación, estas cambiando los valores y se ejecuta el ON CHANGE.

Tienes a mi parecer dos posibilidades.
1) ASIGNAR VALORES antes de la creación del objeto COMBO
2) No asignar acción (ON CHANGE) en la creación del COMBO. Crear el codeblock despues de la asignacion de los valores ( por ejemplo en el ON INIT del dialogo o ventana, despues del código actual.

Saludos
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: No ejecutar acción al inicio del objeto combobox

Postby leandro » Mon Dec 14, 2020 7:30 pm

Muchas gracias a todos por responder....

Lo pude solucionar de la forma que propuso karinha, me hacia falta hacer el cambio de la variable :oops: .

Code: Select all  Expand view  RUN

Private lCondicion := .F.
......
@ oBrwAr:nBottom + 1, nW-69 COMBOBOX oCmList VAR nCmList ITEMS aCmList SIZE 44,24 PIXEL OF oP ;
            STYLE CBS_DROPDOWNLIST ON CHANGE( IF( lCondicion, navegapaginas(2),))
.......
ACTIVATE WINDOW oWChArti MAXIMIZED ON INIT ( if(len(aArti)!=0,actualizamesarti(aArti[oBrwAr:nArrayAt]),),;
                navegapaginas(0),lCondicion:=.T. ) VALID(oBtArt:enable(),.t. )
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: No ejecutar acción al inicio del objeto combobox

Postby karinha » Wed Dec 16, 2020 12:44 pm

leandro wrote:Muchas gracias a todos por responder....

Lo pude solucionar de la forma que propuso karinha, me hacia falta hacer el cambio de la variable :oops: .

Code: Select all  Expand view  RUN

Private lCondicion := .F.
......
@ oBrwAr:nBottom + 1, nW-69 COMBOBOX oCmList VAR nCmList ITEMS aCmList SIZE 44,24 PIXEL OF oP ;
            STYLE CBS_DROPDOWNLIST ON CHANGE( IF( lCondicion, navegapaginas(2),))
.......
ACTIVATE WINDOW oWChArti MAXIMIZED ON INIT ( if(len(aArti)!=0,actualizamesarti(aArti[oBrwAr:nArrayAt]),),;
                navegapaginas(0),lCondicion:=.T. ) VALID(oBtArt:enable(),.t. )
 


Muy bien. Yo usaría: STATIC lCondicion := .F.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7844
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 28 guests