AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Controles, páginas y ventanas / Funciones de controles
  • Pertenencia de controles
  • Uso de los controles recuperados
  • WLanguage error
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Devuelve el nombre de Nth control que se encuentra en el elemento especificado. Este elemento debe ser visualizado.
Observación: En la mayoría de los casos, le recomendamos que utilice gpwEnumControl que enumera todos los controles directamente.
En un bucle, esta función se utiliza para enumerar los controles que se encuentran en un elemento.
Ejemplo
Reportes y Consultas
// Name of control 7 in the "WIN_EditWindow" window
ResControl = EnumControl(WIN_EditWindow, 7)
Reportes y Consultas
// Fill a Combo Box control with the list of controls in the windowi is int = 1
ResControl is string
ResControl = EnumControl(WIN_EditWindow, i)
WHILE ResControl <> ""
i++
ListAdd(COMBO_ControlList, ResControl)
ResControl = EnumControl(WIN_EditWindow, i)
END
Sintaxis
<Result> = EnumControl(<"Parent" object> , <Control number> [, <Type of enumeration>])
<Result>: Cadena de caracteres
  • Nombre de control encontrado,
  • Vaciar la cadena ("") si no se encontró ningún control.
<"Parent" object>: Cadena de caracteres
Nombre del objeto "padre" (que contiene el control). Este parámetro corresponde al nombre de una ventana, a control Looper, una pausa en a control Looper, un grupo, a control Pestaña, un supercontrol o a reporte.
Si el objeto "Padre" es un control Pestaña, se debe utilizar la siguiente sintaxis: <Nombre de control Pestaña>[<Número de pestaña>]. Por ejemplo: TAB_Tab1[ 2].
<Control number>: Integro
Número de la control cuyo nombre se solicita. Cada control es associated con un número. Este número corresponde a:
  • el orden de creación de los controles (por defecto) si el tipo de enumeración se realiza mediante la constante byCreationOrder
  • la orden de tabulación (que significa el orden en que los controles obtienen el foco en el objeto "padre") si el tipo de enumeración se realiza con la constante byTabOrder.
    La tecla F5 se utiliza para ver el orden de navegación en el editor de ventanas y en el editor de páginas.
<Type of enumeration>: Constante opcional de tipo Integer
Orden en el que se realiza la enumeración:
byCreationOrder
(Valor predeterminado)
Enumeración realizada según el orden de creación de los controles (en el editor o por ControlClone).
byTabOrderEnumeración realizada según el orden de navegación con la tecla de tabulación (Tab). Los controles a los que no se puede acceder con el tabulador (Tab) se enumeran al final.
byZOrderEnumeración realizada según la posición de orden Z de los controles, de menor a mayor.

Observaciones

Pertenencia de controles

Sólo se enumeran los controles que pertenecen directamente al objeto "padre" especificado.
Por ejemplo, si el objeto <"Padre"> corresponde al nombre de una ventana o página, EnumControl sólo afecta a los controles que pertenecen directamente a esta ventana o página. EnumControl no se puede utilizar para recuperar los nombres de los controles pertenecientes a los controles de la pestaña o los supercontroles de esta ventana (o página).

Uso de los controles recuperados

Cuando el nombre de un control recuperado por EnumControl está contenido en un Variable, el propio control puede utilizarse gracias a operadores indirectos (puntales { y }). Ejemplo:
// Name of control 7 in the pageControlName is string = EnumControl(MyPage, 7)
// Control caption
ToastDisplay({ControlName}..Caption)

WLanguage error

Se produce un error de WLanguage si:
  • El parámetro <Número de control> es negativo.
  • El parámetro <Número de control> es mayor que el número de controles en el <Objeto "padre"> +1. Esto se utiliza para evitar los bucles sin fin.
  • <"Padre" objeto> no es una ventana, una página, un reporte, un grupo, un control Pestaña o un supercontrol.
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo PCSOFT
Exemplo de uso do EnumControl
Lista objetos da tela
Inclusive os sub objetos

j is int = 1
ResChamp is string
ResChamp = EnumControl(MyWindow.Name, j)
WHILE ResChamp <> ""
j++
Trace(ResChamp)
listeélément(MyWindow.Name+"."+ResChamp)
ResChamp = EnumControl(MyWindow.Name, j)
END


INTERNAL PROCÉDURE listeélément(NomElt)
i is int = 1
sResChampSousElt is string
sResChampSousElt = EnumSubElement(NomElt, i)
WHILE sResChampSousElt <> ""
i++
Trace(NomElt+"."+sResChampSousElt)
listeélément(NomElt+"."+sResChampSousElt)
sResChampSousElt = EnumSubElement(NomElt, i)
END
END


The Free Technical Support is entirely at your service.
Boller
14 12 2023
PROCEDURE evento_lista_objetos_gpw(ninstancia)
i is int = 1
objs_form is string = ""
sControlName is string = ""

ninstancia = ninstancia

<COMPILE IF Configuration<>"iOS application" AND Configuration<> "Android application">

arrayControles is array of string

IF ninstancia = 0 THEN

RESULT ""

ELSE

NomeForm is string = m_Tabela[ninstancia].gs_nomeJanela

WHEN EXCEPTION IN

sControlName = gpwEnumControl(NomeForm, i)
indirection is string = NoSpace(NomeForm) +"."+ NoSpace(sControlName)
Add(arrayControles,indirection)

LOOP(5000)

// Next control
i++

sControlName = gpwEnumControl(NomeForm, i)

IF sControlName <> ""
indirection = NoSpace(NomeForm) +"."+ NoSpace(sControlName)
Add(arrayControles,indirection)
Trace(indirection)
ELSE
BREAK
END

END

RESULT arrayControles


DO
IF ExceptionInfo(errCode) THEN
RESULT arrayControles
END
END


END

<END>
BOLLER
02 09 2023
PROCEDURE evento_lista_objetos(ninstancia)
i is int = 1
objs_form is string = ""
sControlName is string = ""
sControles is string = ""

arrayControles is array of string

IF ninstancia = 0 THEN

RESULT ""

ELSE

NomeForm is string = m_Tabela[ninstancia].gs_nomeJanela

WHEN EXCEPTION IN

sControlName = EnumControl(NomeForm, i)
indirection is string = NoSpace(NomeForm) +"."+ NoSpace(sControlName)
Add(arrayControles,indirection)

LOOP(5000)

Trace(sControlName)

i++

sControlName = EnumControl(NomeForm, i)

IF sControlName <> ""
indirection = NoSpace(NomeForm) +"."+ NoSpace(sControlName)
Add(arrayControles,indirection)
Trace(indirection)
ELSE
BREAK
END

END

RESULT arrayControles

DO
IF ExceptionInfo(errCode) THEN
RESULT arrayControles
END
END

END
Boller
02 09 2023

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local