Quatro formas diferentes de usar objectos com o 4D Write Pro!

Tradução automática de Deepl

Muito francamente, nós adoramos objectos. 4D Write Pro utiliza objectos como entrada/saída de comandos e funções para manipular documentos, textos, parágrafos, etc. Neste post do blogue, vamos mostrar-lhe quatro formas diferentes de utilizar objectos com o 4D Write Pro.

Definição de atributos

Vamos usar um exemplo simples. Quer definir a fonte, tamanho e peso do texto seleccionado para “Arial”, “Bold” e “16pt”.

Primeiro, capture o texto seleccionado como um intervalo.

$range:=WP Get selection(WParea)

Lembrete: WP Get selection não devolve o texto, devolve o intervalo que corresponde ao texto seleccionado. Este intervalo tem vários atributos que são visíveis no depurador: “início”, “fim”, “tipo”, e “proprietário”.

Depois, defina os atributos com a 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 é fácil de ler e escrever graças às constantes e, em alguns casos, às constantes inteligentes (como wk true na terceira linha).

Alternativa 1: OB SET

Desde que $range seja um objecto e wk font xxx seja um atributo, pode considerar a utilização do comando OB SET ordenar que se faça o mesmo.

E sabe que mais? Funciona muito bem! O código abaixo faz exactamente a mesma coisa:

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

Mesmo as mesmas constantes podem ser usadas. A única diferença é que já não é óbvio que este código se aplique a um documento 4D Write Pro. Hmmmmm. Vejamos a segunda alternativa.

Alternativa 2: Notação de objecto

Se tiver activado a notação de objectos nas suas bases de dados, gostaria de a utilizar o mais possível, certo?

Será que este código também funcionará?

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

Sim, funciona! E vem com um par de vantagens adicionais: código compactado, fácil de ler, e o resultado é – claro – exactamente o mesmo.

Uma pequena nota de prudência: Escrito desta forma, não há auto-completamento, e as constantes/smart constants requerem cuidados adicionais porque são sensíveis a maiúsculas e minúsculas(por exemplo, fontFamily funcionará, mas FontFamily não). Portanto, se escrever este tipo de código, sugerimos que tenha muito cuidado 😉

Existe outra escolha? Sim, existe!

Alternativa 3: Notação de objectos com parênteses

A notação de objectos é realmente poderosa. O nome dos atributos pode ser avaliado se estiverem dentro de parênteses rectos [“myAttribute”]. Por isso, quando se escreve:

contact["name"]:="Brown"

é o equivalente exacto da escrita:

contact.name:="Brown" (castanho)

O que significa para 4D Write Pro? A resposta curta é: pode usar notação de objecto E constantes!

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

Esta alternativa final é compacta, fácil de ler/escrever, e usa constantes…um vencedor!!

E os atributos de Leitura ?

O mesmo se aplica aos atributos de leitura. Os seguintes exemplos de código são 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: Notação de objectos

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

$bold:=$range.fontBold

Alternativa 3: Notação de objectos com parênteses

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

Como se pode ver, múltiplas formas de programação podem conduzir ao mesmo resultado. Cabe agora a si decidir qual a direcção a tomar!

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.