Čtyři různé způsoby použití objektů v aplikaci 4D Write Pro!

Automaticky přeloženo z Deepl

Upřímně řečeno, milujeme předměty. 4D Write Pro používá objekty jako vstup/výstup příkazů a funkcí pro manipulaci s dokumenty, textem, odstavci atd. V tomto příspěvku na blogu vám ukážeme čtyři různé způsoby použití objektů v aplikaci 4D Write Pro.

Nastavení atributů

Použijme jednoduchý příklad. Chcete nastavit písmo, velikost a váhu vybraného textu na „Arial“, „Bold“ a „16pt“.

Nejprve zachyťte vybraný text jako rozsah.

$range:=WP Get selection(WParea)

Připomínáme: WP Get selection nevrací text, ale rozsah odpovídající vybranému textu. Tento rozsah má několik atributů, které jsou viditelné v ladicím programu: „start“, „end“, „type“ a „owner“.

Poté definujte atributy pomocí příkazu WP SET ATTRIBUTES příkazem:

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).

Tento kód se snadno čte a zapisuje díky konstantám a ,v některých případech, inteligentním konstantám (jako wk true na třetím řádku).

Alternativa 1: OB SET

Pokud je $range objekt a wk font xxx atribut, můžete zvážit použití příkazu OB SET příkazem udělat totéž.

A víte co? Funguje to skvěle! Níže uvedený kód dělá přesně totéž:

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

Dokonce lze použít i stejné konstanty. Jediný rozdíl je v tom, že už není zřejmé, že tento kód platí pro dokument 4D Write Pro. Hmmmmm. Podívejme se na druhou alternativu.

Alternativa 2: Zápis objektů

Pokud jste ve svých databázích aktivovali objektovou notaci, rádi byste ji používali co nejvíce, že?

Bude tento kód také fungovat?

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

Ano, funguje! A přináší několik dalších výhod: zhuštěný kód, přehledný a výsledek je – jak jinak – úplně stejný.

Malá poznámka na závěr: Takto zapsané konstanty/smart constants vyžadují zvýšenou pozornost, protože rozlišují malá a velká písmena (např. fontFamily bude fungovat, ale FontFamily ne ). Pokud tedy píšete tento druh kódu, doporučujeme být velmi opatrní 😉

Existuje jiná možnost? Ano, existuje!

Alternativa 3: Zápis objektů pomocí závorek

Objektová notace je opravdu mocná. Názvy atributů lze vyhodnotit, pokud jsou v hranatých závorkách [„myAttribute“]. Takže když napíšete:

contact["name"]:="Brown"

je to přesně ekvivalentní zápisu:

kontakt.name:="Brown"

Co to znamená pro aplikaci 4D Write Pro? Stručná odpověď zní: Můžete používat objektovou notaci A konstanty!

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

Tato poslední alternativa je kompaktní, snadno se čte/zapisuje a používá konstanty… vítěz na celé čáře!!!

A co atributy pro čtení ?

Totéž platí pro čtení atributů. Platí následující příklady kódu.

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: Zápis objektu

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

$bold:=$range.fontBold

Alternativa 3: Zápis objektů se závorkami

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

Jak vidíte, více způsobů programování může vést ke stejnému výsledku. Nyní je na vás, abyste se rozhodli, kterým směrem se vydáte!

Roland Lannuzel
- Product Owner & 4D Expert - Po studiu elektroniky se Roland věnoval průmyslovým IT jako vývojář a konzultant, který vytvářel řešení pro zákazníky s různými databázemi a technologiemi. Koncem 80. let se zamiloval do 4D a používal jej při psaní podnikových aplikací, které zahrnovaly účetní, fakturační a e-mailové systémy. nakonec se připojil ke společnosti v roce 1997 a Rolandův cenný přínos zahrnuje návrh specifikací, testovacích nástrojů, demoverzí a také školení a přednášky pro komunitu 4D na mnoha konferencích. Nadále aktivně utváří budoucnost 4D definováním nových funkcí a nástrojů pro vývoj databází.