COMPANY

BLOGS

  • user warning: Unknown column 'u.signature_format' in 'field list' query: SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.thread, c.status FROM comments c INNER JOIN users u ON c.uid = u.uid WHERE c.nid = 19260 AND c.status = 0 ORDER BY c.cid LIMIT 0, 50 in /var/www/www.4d.com/docs/modules/comment/comment.module on line 991.
  • warning: file_get_contents(http://www.telize.com/geoip/54.167.196.208) [function.file-get-contents]: failed to open stream: HTTP request failed! in /var/www/www.4d.com/docs/includes/common.inc(1762) : eval()'d code on line 4.

Objetos y Propiedades

22.07.2010
por Thibaud Arguillère

Durante la ejecución de un programa, es frecuente tener que acceder a ciertas propiedades de los objetos de los formularios. Por ejemplo, podemos mover y redimensionar dinámicamente un objeto, ponerlo en negrita o itálica, o modificar el título de un botón...

 

El tema de lenguaje "Propiedades de los objetos" ha sido renovado en 4D v12: los comandos han cambiado de nombre, y se han añadido nuevos comandos y funcionalidades.


Cada versión mayor de 4D por lo general incluye cambios de nombres de algunos comandos, es una clase de tradición. Sin embargo puede ser desconcertante descubrir que un comando que utiliza a menudo ya no funciona. Pero al final, nos adaptamos rápidamente. (Bueno, debo admitir que fue difícil cuando INSERT ELEMENT se convirtió en INSERT IN ARRAY en 4D v11 SQL). 4D v12 mantiene esta tradición y especialmente en el tema "Propiedades de los objetos": ¡Todos los comandos cambiaron de nombre! Ahora, todos empiezan con el prefijo "OBJECT", lo cual es una buena idea, especialmente cuando utiliza con frecuencia la entrada predictiva. Ahora, todos los comandos están agrupados por lo que es más fácil encontrar el correcto:

Entrada predictiva

Más allá de este cambio de nombre, 4D v12 aporta una mayor coherencia en la gestión dinámica de las propiedades de los objetos. Ahora, cada GET tiene su contraparte SET:
 

OBJECT SET ENABLED

OBJECT Get enabled

OBJECT SET ALIGNMENT

OBJECT Get alignment

OBJECT SET STYLED TEXT ATTRIBUTES

OBJECT GET STYLED TEXT ATTRIBUTES

OBJECT SET SCROLLBAR

OBJECT GET SCROLLBAR

OBJECT SET RGB COLORS

OBJECT GET RGB COLORS

OBJECT SET SCROLL POSITION

OBJECT GET SCROLL POSITION

OBJECT MOVE

OBJECT GET COORDINATES

OBJECT SET FILTER

OBJECT Get filter

OBJECT SET FORMAT

OBJECT Get format

OBJECT SET CHOICE LIST NAME

OBJECT Get choice list name

OBJECT SET FONT

OBJECT Get font

OBJECT SET ENTERABLE

OBJECT Get enterable

OBJECT SET FONT STYLE

OBJECT Get font style

OBJECT SET FONT SIZE

OBJECT Get font size

OBJECT SET STYLED TEXT

OBJECT Get styled text

OBJECT SET TITLE

OBJECT Get title

OBJECT SET VISIBLE

OBJECT Get visible

 

Si un comando GET no tiene su contraparte SET (o viceversa), es porque no lo necesita. Por lo general, OBJECT GET BEST SIZE no puede tener una contraparte OBJECT SET BEST SIZE, ya que devuelve valores dependientes del contenido del objeto. Es un poco diferente para OBJECT SET COLOR que utiliza la antigua paleta de colores: para obtener el color de un objeto vía OBJECT GET RGB COLORS sólo puede utilizar el rojo/verde/azul.

 

Los nuevos comandos OBJECT Get enabled/SET ENABLED reemplazan a DISABLE BUTTON/ENABLE BUTTON, los cuales son oficialmente obsoletos. Como desarrolladores 4D, debemos sustituir los antiguos comandos por los nuevos, porque son mucho más eficientes. No sólo su alcance se limita al formulario actual, si no también el nombre es más claro. Siempre me pareció extraño llamar DISABLE BUTTON para desactivar un combo-box, que obviamente ¡No es un botón!

 

Por último, los desarrolladores más antiguos encontrarán OBJECT Get title muy interesante, ya que también puede devolver el título de un botón (¿quién acaba de decir "Por fin!"?) ... Además, también devuelve el contenido del texto estático (normalmente una etiqueta de campo o una frase de bienvenida). Y yendo aún más lejos, el comando OBJECT SET TITLE también funciona en texto estático. Esto nos hizo decir, durante varios Devcons 4D v12 en todo el mundo, que inventamos el concepto de "texto estático dinámico". Así es cómo funciona:

 

 

 

RSS 0 comentario(s) a este mensaje