FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Esconder control en dialogo
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Esconder control en dialogo
Posted: Thu Apr 23, 2020 02:50 PM

Hola.
Por reutilizar un diálogo me interesa esconder(que no se vea) un combobox, entonces pruebo al activar el diálogo.
ON INIT oCombo:Hide().
Pero me arroja error.
Dentro del Diálogo o también pruebo.
oCombo:Hide().
Pero tampoco me funciona.

Alguna idea?

Muchas gracias

Saludos

Jose

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Esconder control en dialogo
Posted: Thu Apr 23, 2020 02:56 PM

STATIC oCombo?

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Esconder control en dialogo
Posted: Thu Apr 23, 2020 03:05 PM
karinha wrote:STATIC oCombo?
Pues no lo tengo como Local, debo definirlo static.

Gracias siempre por tu ayuda

Jose


Enviado desde mi POCOPHONE F1 mediante Tapatalk
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Esconder control en dialogo
Posted: Thu Apr 23, 2020 03:51 PM
Yo uso esta función :

Code (fw): Select all Collapse
Function OcultaObjetos(aObjetos,lCondicion,lMostrar)
/* =================================================================================================
    Ocuta los objetos de aObjetos si se cumple lcondicion. Para que funcione hay que llamar a esta 
    función dentor del ON Init del diálogo
        --------------
        Victor 21/09/2018 16:20:55
        Revisión : Angel - 24/09/2018 17:37:03 - Añadido lMostrar para que muestre los objetos
        Victor 09/01/2019 9:32:19 se activa el modo recursivo ya que aObjetos también puede tener items que sean arrays.
        ================================================================================================
*/      
Loca nC, nLen:=Len (aObjetos)
  DEFAULT lMostrar:=.F.
  
  If lMostrar
    For nC:=1 To nLen
        If ValType(aObjetos[nC])="A"
            OcultaObjetos(aObjetos[nC],lCondicion,lMostrar)
        Else
            aObjetos[nC]:Show()
        Endif
        Next
  Else
    If lCondicion 
      For nC:=1 To nLen
        If ValType(aObjetos[nC])="A"
                OcultaObjetos(aObjetos[nC],lCondicion,lMostrar)
            Else
            aObjetos[nC]:Hide()
          Endif
          Next
      Endif
    Endif
    
Return Nil
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Esconder control en dialogo
Posted: Thu Apr 23, 2020 05:46 PM
Yo lo hago como dice Angel. ( creo que se le llama Detached Local )

Code (fw): Select all Collapse
ACTIVATE DIALOG oDlg ON INIT oCultar(oCombo)

Function oCultar(oCombo)
   oCombo:Hide()
return nil

ó si se quiere ocultar varios combos del Dialog, algo asi:  

ACTIVATE DIALOG oDlg ON INIT oCultar(oDlg)

Function oCultar(oDlg)
   AEval(oDlg:aControls,{|o| if(upper(o:ClassName()) == "TCOMBOBOX", o:Hide,) })
return nil
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Esconder control en dialogo[Solucionado]
Posted: Thu Apr 23, 2020 07:14 PM
Muchas gracias Angel y FranciscoA

Muy buenas las funciones , yo no necesito tanto, pero al ver el codigo he comprendido que hay que llamar al metodo Hide() asi.

Code (fw): Select all Collapse
oDlg:aControls[1]:Hide()


Con esto solucionado.

Saludos.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64

Continue the discussion