Cuatro formas diferentes de utilizar los objetos con 4D Write Pro

Traducido automáticamente de Deepl

Francamente, nos encantan los objetos. 4D Write Pro utiliza objetos como entrada/salida de comandos y funciones para manipular documentos, textos, párrafos, etc. En esta entrada del blog, te mostraremos cuatro formas diferentes de usar objetos con 4D Write Pro.

Estableciendo atributos

Usemos un ejemplo sencillo. Usted quiere establecer la fuente, el tamaño y el peso del texto seleccionado a «Arial», «Bold» y «16pt».

Primero, capture el texto seleccionado como un rango.

$range:=WP Get selection(WParea)

Recordatorio: WP Get selection no devuelve el texto, devuelve el rango que coincide con el texto seleccionado. Este rango tiene varios atributos que son visibles en el depurador: «inicio», «fin», «tipo» y «propietario».

A continuación, defina los atributos con el WP SET ATTRIBUTES comando:

WP SET ATTRIBUTES($range;wk font family; "Arial")
WP SET ATTRIBUTES ($range;wk font size;16)
WP SET ATTRIBUTES ($range;wk font bold;wk true)

Este código es fácil de leer y escribir gracias a las constantes y, en algunos casos, a las constantes inteligentes (como wk true en la tercera línea).

Alternativa 1: OB SET

Mientras que $range es un objeto y wk font xxx es un atributo, podrías considerar usar el comando OB SET para hacer lo mismo.

¿Y sabes qué? Funciona muy bien. El código siguiente hace exactamente lo mismo:

OB SET($range;wk font family; "Arial")
OB SET ($range;wk font size;16)
OB SET ($range;wk font bold;wk true)

Incluso se pueden utilizar las mismas constantes. La única diferencia es que ya no es obvio que este código se aplique a un documento de 4D Write Pro. Hmmmmm. Veamos la segunda alternativa.

Alternativa 2: Notación de objetos

Si ha activado la notación de objetos en sus bases de datos, le gustaría utilizarla tanto como sea posible, ¿verdad?

¿Funcionará también este código?

$range.fontFamily:="Arial"
$range .fontSize:=16
$range .
fontBold:=wk true

Sí, funciona. Y viene con un par de ventajas adicionales: código compactado, fácil de leer, y el resultado es -por supuesto- exactamente el mismo.

Una pequeña nota de precaución: Escrito así, no hay autocompletado, y las constantes/smart constants requieren un cuidado extra porque son sensibles a las mayúsculas y minúsculas(por ejemplo, fontFamily funcionará pero FontFamily no). Así que si escribe este tipo de código, le sugerimos que sea muy cuidadoso 😉

¿Hay otra opción? Sí, la hay.

Alternativa 3: Notación de objetos con paréntesis

La Notación Objeto es realmente poderosa. El nombre de los atributos puede ser evaluado si está entre corchetes [«miAtributo»]. Así que cuando escribes

contact["name"]:="Brown"

es el equivalente exacto de escribir

contacto.nombre:="Marrón"

¿Qué significa esto para 4D Write Pro? La respuesta corta es que puede utilizar la Notación Objeto y las constantes.

$range[wk font family]:="Arial"
$range [wk font size]:=16
$range [wk font bold]:=wk true

Esta alternativa final es compacta, fácil de leer/escribir, y utiliza constantes… ¡un ganador total!

¿Qué pasa con la lectura de atributos?

Lo mismo ocurre con la lectura de atributos. Los siguientes ejemplos de código son válidos.

WP GET ATTRIBUTES($range;wk font family;$family)
WP GET ATTRIBUTES ($range;wk font size;$size)
WP GET ATTRIBUTES ($range;wk font bold;$bold)

Alternativa 1: OB GET

$family:=OB Get($range;wk font family)
$size :=OB Get($range;wk font size)
$bold :=OB Get($range;wk font bold )

Alternativa 2: Notación de objetos

$family:=$range.fontFamily
$size :=$range.fontSize

$bold:=$range.fontBold

Alternativa 3: Notación de objetos con paréntesis

$family:=$range[wk font family]
$size :=$range[wk font size]
$bold :=$range[wk font bold]

Como puede ver, varias formas de programar pueden llevar al mismo resultado. Ahora te toca a ti decidir qué dirección tomar.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.