Página 1 de 1

Tipo do Controle/Componente

Enviado: 01 Fev 2017 04:16
por rubens
Olá..

Com esta função eu consigo uma listagem do nome de todos os controle/componentes de um formulário...

Código: Selecionar todos

FUNCTION ControlesdeFormulario( cFormName , lMostrar )
LOCAL acControles, nParentHandle, nLen, nControl, cTempStr, cControl
hb_Default( @lMostrar, .f. )
hb_Default( @cFormName, ThisWindow.Name ) 
nParentHandle 	:= GetFormHandle(cFormName)
nLen    			:= LEN(_HMG_aControlParenthandles)
cTempStr  := ""
acControles := {}
For nControl := 1 TO nLen
   If _HMG_aControlParenthandles[nControl] == nParentHandle
      cControl := _HMG_aControlNames[nControl]
      If !EMPTY(ALLTRIM(cControl))
         AADD(acControles, cControl)
         cTempStr += cControl + CRLF
      EndIf
   EndIf
NEXT 
IF lMostrar
   MSGBOX(cTempStr, PADR(cFormName, 50))
ENDIF
Tem como me mostrar também o tipo do controle/componente?
Tipo o componente 5 tem o nome Text_1 (que pode ser alterado para tbNome) daí qual seria o tipo do controle/componente 5? Textbox, Label, ChekBox etc..
Tem como fazer isso?
O que eu preciso mudar na função?

Obrigado
Rubens

Tipo do Controle/Componente

Enviado: 01 Fev 2017 10:50
por Claudio Soto
El tipo de control esta definido en la posicion 1 de la matriz _HMG_SYSDATA [1][cControl]

_HMG_aControlxxx son pseudofunciones que hacen referencia a diferentes posiciones de dicha matriz.