# JavaScript y Layout

**URL:** <https://foros.velneo.com/t/javascript-y-layout/6048>\
**Category:** Velneo\
**Created:** [11 Marzo, 2013 10:54 UTC](https://foros.velneo.com/t/javascript-y-layout/6048 "2013-03-11T10:54:16Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 10:54 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/1 "2013-03-11T10:54:16Z")

</div>

Buenas a todos,

Tengo el siguiente código adjunto que lanzo en un evento de un formulario. El objetivo del mismo es recorrer los objetos de un formulario para cambiarles la propiedad Enabled.El código muere siempre en la línea 10 en el momento en que oControl es un Layout. No sé que puedo hacer porque si el objeto no es Layout funciona perfectamente.

&nbsp;

¿Se os ocurre qué peude ser?

Saludos,

Miguel D.

---

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 10:54 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/2 "2013-03-11T10:54:58Z")

</div>

código

![image](https://cdck-file-uploads-canada1.s3.dualstack.ca-central-1.amazonaws.com/flex035/uploads/velneo/original/2X/3/3c4c71b55f2f5e0bd1f8a81355ee18491fa6ec67.png)

---

<div class="post-metadata">

**Author:** ![jose1](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@jose1](https://foros.velneo.com/u/jose1)\
**Post date:** [11 Marzo, 2013 13:07 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/3 "2013-03-11T13:07:55Z")

</div>

Aqui tienes la lista de tipos de control

[http://velneo.es/info\_v7\_712\_es/velneo\_vdevelop\_v7/scripts/clases/vmainwindow](http://velneo.es/info_v7_712_es/velneo_vdevelop_v7/scripts/clases/vmainwindow)

modifica el script para controlar que el control este en la lista, o evitar que compruebe los layouts

un saludo

José Luis

&nbsp;

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [11 Marzo, 2013 13:18 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/4 "2013-03-11T13:18:30Z")

</div>

@mdelgado, usa la sentencia try catch para controlar el error.

A mi me paso lo mismo

---

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 13:37 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/5 "2013-03-11T13:37:18Z")

</div>

@Manuel, muchas gracias.

El problema es que oControl como digo es un objeto, pero realmente no tiene nada dentro. No es posible controlarlo preguntando si “ES UN OBJETO”. La forma de hacerlo sin Try/Cash es la que os paso. Llevo 2 días con esto y la solución no podía ser más fácil.

![image](https://cdck-file-uploads-canada1.s3.dualstack.ca-central-1.amazonaws.com/flex035/uploads/velneo/original/2X/3/3bec4e3c5cc3b6ad43a3cfd133df411d420b803c.png)

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [11 Marzo, 2013 13:50 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/6 "2013-03-11T13:50:10Z")

</div>

Pues si, más limpio se te queda, me alegro

---

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 16:07 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/7 "2013-03-11T16:07:57Z")

</div>

@Manuel, Sábes cómo saber desde el código que he pasado qué tipo de Widget se trata?. He mirado y no tienen la propiedad type.

Vayan las gracias por adelantado!!!

&nbsp;

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [11 Marzo, 2013 16:19 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/8 "2013-03-11T16:19:03Z")

</div>

@mdelgado

en este post te respondi, es la clase VMainWindows

[http://velneo.es/foros/topic/javascript-tipo-de-objeto/](http://velneo.es/foros/topic/javascript-tipo-de-objeto/ "http://velneo.es/foros/topic/javascript-tipo-de-objeto/")

---

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 17:14 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/9 "2013-03-11T17:14:13Z")

</div>

Gracias @Manuel,

&nbsp;

He hablado con Velneo y no está implementado a el Tipo en la clase Widget a día de hoy. por tanto, no hay forma de saber dentro de un bucle de objetos el tipo de cada unod e ellos.

Espero que os sirva para no perder el día como me ha pasado a mi.

&nbsp;

Saludos,

Miguel D.

&nbsp;

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [11 Marzo, 2013 17:43 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/10 "2013-03-11T17:43:36Z")

</div>

@mdelgado,

según la documentación, si le pasas el objeto a la función  
widgetType  
de la clase VMainWindow devuelve un número que equivale al tipo de control-widget

En la misma página de la clase VMainWindow hay una serie de enum donde se describe los controles que es posible que contenga un formulario.

Es decir, aquí hay alguien que se equivoca, o la documentación o ese soporte no es correcto.

Ahora no puedo probarlo, pero si añades a tu código esto

alert( theMainWindow.widgetType( oControl ) );

Fijate en los número que te vaya devolviendo y los comparas con la tabla de enum de la clase y con la lista de controles del formulario que estes analizando. Debería coincidir en los tipos

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [11 Marzo, 2013 17:54 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/11 "2013-03-11T17:54:34Z")

</div>

@mdelgado

lo he probado y devuelve bien los números de los tipos.

Haciendo uso del if ( oControl) evitas pasar por los layouts, pero labels, edits, botones, separadores, los ha pillado perfecto.

---

<div class="post-metadata">

**Author:** ![innovadb](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/innovadb/32/5643_2.png) [@innovadb](https://foros.velneo.com/u/innovadb)\
**Post date:** [11 Marzo, 2013 20:14 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/12 "2013-03-11T20:14:56Z")

</div>

Una pregunta por curiosidad.

¿Para deshabilitar todos los controles no es mejor deshabilitar directamente el formulario?

O incluso poner una caja de grupo que coja todos los controles y desactivarla cuando se quiera.

Insisto en que es solo curiosidad y tal vez tengáis otros motivos para hacer el bucle.

Un saludo

---

<div class="post-metadata">

**Author:** ![mdelgado](https://avatars.discourse-cdn.com/v4/letter/m/cc9497/32.png) [@mdelgado](https://foros.velneo.com/u/mdelgado)\
**Post date:** [11 Marzo, 2013 22:44 UTC](https://foros.velneo.com/t/javascript-y-layout/6048/13 "2013-03-11T22:44:54Z")

</div>

@Manuel, tienes toda la razón.

Me han dado después otra llamada ofreciéndome la misma solución que tu planteas. Al parecer tenían un problema de documentación y por eso me dieron la solución inicial errónea.

&nbsp;

@Innova, la solución duque plantea tiene el problema que sí desquilatas un formulario o una caja directamente y dentro de esta hay una rejilla Ono se puede utilizar el scroll.

&nbsp;

muchas gracias a a todos por contestar y por vuestra ayuda. Subiré la función cuando lo tenga acabado para uso de la comunidad.
