http://windevdesenvolvimento.blogspot.com.br/2015/03/windev-bloqueio-campo-enumcontrol.html
Nesse Video mostro como fazer bloqueio num formulario, sem saber quais os campos que tem dentro
do formulario e nem de quantas guias na tab existe
Procedure matos_f_formulario_consulta_desabilitar_campos(_nome_tab)
MyWindow..Title="Consulta"
i is int = 1
nBloqueia is int = 0
_controle is string = EnumControl(MyWindow,i)
WHILE _controle<>""
i++
nBloqueia=0
IF _controle=_nome_tab THEN nBloqueia=1
IF _controle="BTN_Cancel" THEN nBloqueia=1
IF nBloqueia=0 THEN {_controle}..State = Grayed
_controle=EnumControl(MyWindow,i)
END
i=0
_controle=""
j is int
NbPane is int = {_nome_tab}..Occurrence
TabNum is int = 0
FOR i = 1 TO NbPane
j = 1
_controle = Upper(EnumControl({_nome_tab}[i],j))
WHILE _controle <> ""
j++
nBloqueia=0
IF Left(_controle,11)="BTN_PROXIMO" THEN nBloqueia=1
IF Left(_controle,12)="BTN_ANTERIOR" THEN nBloqueia=1
IF nBloqueia=0 THEN
{_controle}..State=DisplayOnly
{_controle}..Color=LightBlue
END
_controle = Upper(EnumControl({_nome_tab}[i],j))
END
END
GLOBAL
gn_Tipo_inc_alt_exc is int
IF TableSelect(TABLE_cadastro_geral)=-1 THEN RETURN
gn_Tipo_inc_alt_exc=4
Open(WIN_Form_cadastro_geral)
TableDisplay(TABLE_cadastro_geral,taCurrentSelection)
Procedure WIN_Form_cadastro_geral()
FileToScreen()
MyWindow..ReturnedValue = False
IF gn_Tipo_inc_alt_exc =4 THEN matos_f_formulario_consulta_desabilitar_campos("TAB_NoName1")
SetFocus(EDT_Id_inscricao_cnpj_cpf)