Quattro modi diversi di utilizzare gli oggetti con 4D Write Pro!

Tradotto automaticamente da Deepl

Francamente, amiamo gli oggetti. 4D Write Pro utilizza gli oggetti come input/output di comandi e funzioni per manipolare documenti, testi, paragrafi, ecc. In questo post vi mostreremo quattro modi diversi di usare gli oggetti con 4D Write Pro.

Impostazione degli attributi

Utilizziamo un semplice esempio. Si desidera impostare il carattere, la dimensione e il peso del testo selezionato su “Arial”, “Bold” e “16pt”.

Per prima cosa, acquisire il testo selezionato come intervallo.

$range:=WP Get selection(WParea)

Nota: WP Get selection non restituisce il testo, ma l’intervallo corrispondente al testo selezionato. Questo intervallo ha diversi attributi visibili nel debugger: “inizio”, “fine”, “tipo” e “proprietario”.

Quindi, definire gli attributi con il comando WP SET ATTRIBUTES :

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)

Questo codice è facile da leggere e scrivere grazie alle costanti e, in alcuni casi, alle costanti intelligenti (come wk true sulla terza riga).

Alternativa 1: OB SET

Finché $range è un oggetto e wk font xxx è un attributo, si può pensare di usare il comando OB SET per fare la stessa cosa.

E sapete cosa? Funziona benissimo! Il codice qui sotto fa esattamente la stessa cosa:

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

Si possono usare anche le stesse costanti. L’unica differenza è che non è più evidente che questo codice si applica a un documento 4D Write Pro. Hmmmmm. Diamo un’occhiata alla seconda alternativa.

Alternativa 2: notazione a oggetti

Se avete attivato la notazione a oggetti nei vostri database, vorreste usarla il più possibile, giusto?

Funzionerà anche questo codice?

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

Sì, funziona! E ha un paio di vantaggi in più: codice compattato, facile da leggere e il risultato, ovviamente, è esattamente lo stesso.

Una piccola nota di cautela: Scritto in questo modo, non c’è il completamento automatico e le costanti/smart constants richiedono una maggiore attenzione perché sono sensibili alle maiuscole e alle minuscole( per esempio, fontFamily funzionerà, ma FontFamily no). Quindi, se si scrive questo tipo di codice, si consiglia di fare molta attenzione 😉

C’è un’altra scelta? Sì, c’è!

Alternativa 3: Notazione dell’oggetto con le parentesi

Lanotazione a oggetti è davvero potente. Il nome degli attributi può essere valutato se si trova tra parentesi quadre [“myAttribute”]. Quindi, quando si scrive:

contact["name"]:="Brown"

è l’esatto equivalente di scrivere:

contatto.nome:="Marrone"

Che cosa significa per 4D Write Pro? La risposta breve è che è possibile utilizzare la notazione a oggetti e le costanti!

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

Questa alternativa finale è compatta, facile da leggere/scrivere e utilizza le costanti… un vincitore assoluto!!!

E per quanto riguarda la lettura degli attributi?

Lo stesso vale per la lettura degli attributi. I seguenti esempi di codice sono validi.

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: Notazione a oggetti

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

$bold:=$range.fontBold

Alternativa 3: Notazione degli oggetti con parentesi

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

Come si vede, più modi di programmare possono portare allo stesso risultato. Ora sta a voi decidere quale direzione prendere!

Roland Lannuzel
- Product Owner ed esperto di 4D - Dopo aver studiato elettronica, Roland è passato all'IT industriale come sviluppatore e consulente, realizzando soluzioni per i clienti con una varietà di database e tecnologie. Alla fine degli anni '80 si è innamorato di 4D e lo ha utilizzato per scrivere applicazioni aziendali che includono sistemi di contabilità, fatturazione e posta elettronica. Entrato a far parte dell'azienda nel 1997, Roland ha dato il suo prezioso contributo progettando specifiche, strumenti di test e demo, oltre a formare e parlare alla comunità 4D in occasione di numerose conferenze. Continua a plasmare attivamente il futuro di 4D definendo nuove funzionalità e strumenti di sviluppo di database.