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!