úterý 10. prosince 2013

LiveBindings I - Designer



Co jsou LiveBindings

Strategie multiplatformního vývoje si v nástrojích Delphi a C++ Builder vynutila mnohé inovace. Především je to nový aplikační rámec FireMonkey, který zajišťuje podporu různých operačních systémů. Aktuálně lze vyvíjet pro Windows 32 a 64 bit, MacOS X, iOS a Android. S přenositelností aplikací je spjata i technologie "LiveBindings". Jedná se o mechanismus,
který umožňuje vzájemně propojovat libovolné zdroje dat, prvky uživatelského rozhraní nebo grafické objekty. Nahrazuje tak zasílání zpráv mezi objekty, které bylo dosud řešeno prostředky operačního systému a tudíž platformně specifické. To je zvláště důležité z pohledu databázových aplikací, protože LiveBindings umožňují, aby libovolná FireMonkey komponenta mohla pracovat jako specializované "Data-Aware" komponenty ve VCL. Zároveň přináší mnohem obecnější a otevřenější řešení, které umožňuje ošetřit komunikaci mezi objekty i v situacích, kdy předem neznáme typ či rozsah předávaných hodnot. Díky podpoře vizuálního návrhu se rovněž jedná o velmi efektivní způsob vývoje.



Přesto, že LiveBindings byly představeny v souvislosti s uvedením knihovny FireMonkey, je jejich použití možné i v rámci VCL.

Díky LiveBindings může každý objekt vystavit (publikovat) své vlastnosti ve formě textového výrazu. Zároveň se stejným způsobem může přihlásit k odběru vlastností publikovaných jinými objekty. LiveBindings udržují seznam všech definovaných výrazů (komponenta "BindingsList"), zajišťují jejich vyhodnocování a zpracování. LiveBindings rovněž sledují změny vlastností u registrovaných objektů a upozorňují na ně objekty, které si je vyžádaly.


QuickBindings

Ve většině případů lze komunikaci mezi objekty navrhovat vizuálně za pomoci vestavěného návrháře "LiveBindings Designer". Okno návrháře můžeme otevřít z hlavní nabídky (View => LiveBindings Designer), nebo kliknutím pravým tlačítkem myši na objekt, jehož vlastnost chceme pro definici vazby použít a volbou "Bind Visually...".




LiveBindings Designer

V prostředí LiveBindings Designeru jsou objekty a vazby mezi nimi znázorněny ve formě diagramu. Používány jsou následující symboly a terminologie:



Source - Objekt (zdrojový), který informaci poskytuje
Control - Objekt (řízený), který informaci přijímá a zpracovává
Link - Vazba mezi objekty, její definice. Link je orientovaný a určuje směr komunikace, tedy, který objekt informaci publikuje (je "source") a který je jejím příjemcem ("control"):

  • DataToControl - Vazba "Source -> Control" (např. zobrazení dat v Editu)
  • ControlToData - Vazba "Control -> Source" (např. odeslání dat z Editu)
  • Bidirectional - Obousměrná vazba, která reaguje na změnu kteréhokoliv ze vzájemně provázaných prvků (např. TrackBar a Edit) 
QuickBindings až na výjimky nevyžadují žádné kódování. Na základě diagramu jsou vygenerovány patřičné vazby a jejich ošetření. Po startu aplikace "Control" objekt automaticky přebírá a zpracovává vlastnost publikovanou "Source" objektem.


Jeden objekt může samozřejmě předávat informaci více objektům, nebo naopak jeden objekt může být příjemcem informací od více objektů.


Návrh vazeb mezi objekty provádíme tažením myši od zvolené vlastnosti jednoho objektu ke zvolené vlastnosti objektu druhého. Z důvodu přehlednosti jsou u jednotlivých objektů zobrazeny pouze nejčastěji používané vlastnosti. Pokud však klikneme myší na pravý spodní roh označený třemi tečkami, otevře se dialog pro přidání dalších dostupných vlastností. V dialogu lze vyhledávat podle názvu vlastnosti. U komplikovanějších objektů, kde nemusí být seznam vlastností úplný, můžeme chybějící vlastnost jednoduše doplnit do políčka u spodního okraje dialogu a přidat jej do seznamu za pomoci tlačítka "Add".



Objekty jsou zpravidla v LiveBindings Designeru zobrazovány automaticky. Existují však i výjimky. V takovém případě si lze jejich zobrazení vynutit v okně "Inspektor Objektů" nastavením vlastnosti "Visible Element" na True.



Použití LiveBindings přináší kromě zrychlení návrhu aplikace také její lepší "čitelnost". Běžná propojení se obejdou zcela bez kódování a navíc jsou přehledně zdokumentována ve formě diagramu.


LiveBindings diagramy lze ukládat ve zvoleném grafickém formátu. Stačí kliknout pravým tlačítkem myši kdekoliv na pracovní plochu LiveBindings Designeru a vybrat "Save to Image".


pátek 22. listopadu 2013

Android Emulátor II

Přesun Emulátoru na jiný stroj

Jak jsem již zmiňoval ve svém minulém příspěvku, Android emulátor nesmí být provozován ve virtualizovaném prostředí. To že se Android Emulátor nesnáší s virtuálními stroji ale neznamená, že musíte nutně reinstalovat Delphi a všechny používané komponenty. Na "fyzický" stroj stačí přesunout pouze SDK Manager s Emulátorem a následně zprovoznit vzdálené ladění.


Co je PuTTY

PuTTY je nenáročný klient, který umožňuje připojit se ke vzdálenému počítači a předávat mu příkazy ke zpracování. Komunikace může probíhat prostřednictvím protokolů Telnet (Telecommunication Network), RLogin (Remote Login) nebo SSH(Secure Shell). Protože Delphi využívá toho, že Android simulátor lze plnohodnotně ovládat z příkazové řádky, můžeme za pomoci PuTTY "přesměrovat" tyto příkazy mimo virtuální stroj. Následující návod je převzat z
Delphi.org, kde byl ovšem jako vzdálený stroj použit Mac.



1)Konfigurace SSH Host

Na vzdálený stroj nainstalujte SSH server. Některé zdroje doporučují neinstalovat FreeSSHd jako službu, ale spouštět jej jako aplikaci. Po instalaci a spuštění se FreeSSHd zobrazí v oznamovací oblasti hlavního panelu:



Kliknutím pravým tlačítkem myši na ikonu FreeSSHd otevřeme dialog umožňující upravit jednotlivá nastavení. Nejprve v záložce "Tunneling" povolíme přesměrování (forwarding) lokálních portů:



Dále v záložce "Users" přidáme uživatelský účet, kterým se budeme k počítači přihlašovat:



Pokud byla instalace úspěšná, v záložce "Server status" by mělo být u SSH serveru zobrazeno zelené zatržení a informace, že SSH server běží:


2)Instalace Android SDK na vzdálený stroj

Stáhněte Android SDK a rozbalte jej do zvoleného adresáře. Nakonfigurujte a spusťte AVD (viz Anroid Emulátor I).


3)Instalace a konfigurace PuTTY

Nyní stáhneme aplikaci PuTTY. Protože se jedná o přímo spustitelný soubor, není jej třeba instalovat. Po spuštění je třeba provést konfiguraci připojení. V sekci "Session" vyplníme jméno nebo IP adresu vzdáleného stroje. Port pro SSH je typicky 22, nezapomeňte si ale ověřit, zda je zvolený port povolen v nastavení Vašeho firewallu.



V sekci "SSH ->Tunnels" je třeba nastavit přesměrování portů 5554 a 5555, které používá Android emulátor, z lokálního na vzdálený počítač:



Tato nastavení by měla být dostatečná a je tedy možné PuTTY spustit kliknutím na tlačítko "Open". Otevře se příkazový řádek s požadavkem na zadání uživatelského jména a hesla (viz nastavení FreeSSHd):



Po úspěšném přihlášení můžeme PuTTY minimalizovat. Okno však nezavírejte, připojení je aktivní jen po dobu, kdy je PuTTY spuštěné.


4)Otestování přístupu z Delphi

Na počítači (v mém případě ve virtuálním prostředí VMWare) spustíme Delphi a otevřeme nový nebo existující Fire Monkey Mobile Application projekt. Dále otevřeme příkazový řádek (CMD) a spustíme následující příkazy (viz ADB dokumentace):
  • adb kill-server
  • adb devices
Tip: ADB (Android Debug Bridge) se standardně nachází v adresáři "C:\Users\Public\Documents\RADStudio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platform-tools". CMD je tak nutné spustit z tohoto umístění, nebo uvedenou cestu přidat do PATH.



Nyní v Delphi v okně "Project Manager" klikneme pravým tlačítkem myši na uzel "Target" a aktualizujeme jej pomocí volby "Refresh". Pokud se vše podařilo, nabídka se rozšíří o zařízení emulované na vzdáleném stroji:



Z pohledu Delphi je práce se "vzdáleným" emulátorem zcela totožná, jako kdyby běžel na stejném stroji, jako vlastní vývojové prostředí.

sobota 9. listopadu 2013

Android Emulátor I.


Android Virtual Device

Přes maximální snahu společnosti Embarcadero, aby byli programátoři a vývojáři co nejméně zatěžováni odlišnostmi jednotlivých cílových platforem, je přece jen vývoj pro mobilní zařízení v řadě ohledů specifický. Především zde není možné vyvíjenou aplikaci jednoduše spouštět a ladit na stejném stroji, na kterém je vytvářena. Pro účely ladění je potřeba použít buď fyzické zařízení nebo jej simulovat/emulovat. Při vývoji aplikací pro iOS je využíván simulátor, pro Android pak emulátor. Zatímco simulátor je standardní Wintel aplikace, Android emulátor skutečně "emuluje" procesor ARM.

Emulátor PRO a PROTI

Pro
  • Vyzkoušení reálného vzhledu aplikace na zařízeních s různou uhlopříčkou a rozlišením
Proti
  • V některých případech komplikovaná konfigurace
  • Emulátor je "opravdu, ale opravdu" velmi pomalý


Když emulátor nefunguje

Mnoho vývojářů má problém se zprovozněním emulátoru. I když lze emulátor spustit, po nasazení aplikace zůstane obrazovka emulátoru černá, aplikace se nezobrazí vůbec, nebo se po často velmi dlouhé době zobrazí hlášení "Application isn't responding". Příčin, proč není emulátor funkční, může být celá řada. Zde jsou ty nejčastější:
  • Emulátor není správně nakonfigurován
  • Emulátor je instalován ve virtuálním prostředí (VMWare, VirtualPC,…)
  • V počítači není vhodná grafická karta nebo ovladače


Konfigurace Emulátoru

Spolu s Delphi XE5 instalovaný Android SDK již obsahuje nakonfigurované AVD (Android Virtual Device) pojmenované "rsex5_android". Pro vytvoření vlastní konfigurace je třeba otevřít Android SDK Manager (např. prostřednictvím zástupce "Android Tools" z nabídky "Start").




V aplikaci "Android SDK Manager" následně otevřeme správce virtuálních zařízení (nabídka "Tools->Manage AVDs…“).




AVD Manager slouží ke správě a přímému spouštění existujících virtuálních zařízení. U každého ze zařízení je také ikona, která indikuje jeho stav.



Pro vytvoření nového zařízení je vhodné nepoužít přímo tlačítko "New…", ale přepnout se do záložky "Device Definitions". Zde naleznete připravené definice nejběžnějších zařízení, ale není problém vytvořit definici vlastní.




Při definování vlastního zařízení je třeba zadat odpovídající fyzické parametry jako je úhlopříčka, rozlišení nebo paměť. Dále lze určit, které senzory a další hardwarové prostředky má zařízení k dispozici a mají být emulovány.



Po zadání všech požadovaných hodnot je zpřístupněno tlačítko "Create Device". To otevře dialog, kde je možné ještě upřesnit některá nastavení.



Z pohledu vývojových nástrojů Embarcadero je zásadní nastavení následujících parametrů:

Target - Určuje verzi Android SDK Platform API, s kterým má být emulované zařízení kompatibilní. 
CPU/ABI - zde lze vybrat platformu, která má být emulována. Možnosti jsou dvě a to buď ARM nebo Intel Atom. V našem případě je třeba zvolit emulaci procesoru ARM.
Emulation Options - Pro ladění aplikací vytvořených v Delphi a v budoucnu také v C++ Builderu musí být zapnuta HW akcelerace (volba "Use Host GPU"). Tento požadavek vyplývá z nároků aplikačního rámce FireMonkey. Grafické operace tak nebude zpracovávat emulátor, ale budou přesměrovány na GPU grafické karty. Zároveň nelze použít volbu "Snapshot", která ukládá obsah emulované RAM a následně ji používá místo "bootování" Androidu pro rychlejší start emulátoru. Podmínkou pro použití HW akcelerace jsou:
  • Android SDK Tools, Revize 17 nebo vyšší
  • Android SDK Platform API 15, Revize 3 nebo vyšší
  • Grafická karta s podporou OpenGL
Provedená nastavení nakonec potvrdíme tlačítkem "OK". Tím je virtuální zařízení připraveno k použití. Během startu vypisuje emulátor informace o průběhu inicializace jednotlivých modulů. V případě, že bude obsahovat hlášení "Could not initialize OpenglES emulation", znamená to, že s nejvyšší pravděpodobností nemáte instalovanou vhodnou kartu nebo ovladače k ní. Stejné hlášení obdržíte při spuštění emulátoru ve virtuálním stroji.



V příštím příspěvku si popíšeme, jak zpřístupnit emulátor z vývojového prostředí instalovaného ve virtuálním stroji.

sobota 12. října 2013

Vývoj pro Android III.


Nastavení vývojového prostředí

1) Instalace a konfigurace SDK
Během instalace je standardně instalován i Android Software Developer Kit, aktuálně API verze 17. V případě, že už Android SDK máte instalovaný jako součást jiného softwarového balíku, je výrazně doporučeno používat pro vývoj v Delphi pouze SDK, které bylo dodáno spolu s prostředím. Delphi využívá Android SDK a v něm obsažené nástroje při sestavení aplikace a i drobná chyba v konfiguraci či nastavení cest může způsobit zbytečné problémy. Jistotu, že používáte správnou instanci, Vám zajistí, použijete-li zástupce "Android Tools" z nabídky Start.




Zástupce "Android Tools" spustí příslušný Android SDK Manažer, s jehož pomocí můžete následně SDK aktualizovat nebo rozšiřovat o podporu dalších verzí API.


O tom, s jakou verzí SDK bude Delphi pracovat, rozhoduje nastavení takzvaného profilu. Změnit jeho nastavení, nebo přidat nový profil můžeme v okně "Project Manager". V seznamu dostupných cílových platforem označíme platformu "Android" a klikneme na ni pravým tlačítkem myši. V následně zobrazené nabídce pak klikneme na volbu "Edit SDK...". Alternativně můžeme použít hlavní nabídku Delphi "Tools => Options => Environment Options => SDK Manager".

Dialog zobrazí aktuálně nastavené cesty k jednotlivým součástem Android SDK. Funkční konfiguraci je vhodné uložit do souboru (volba "Export"), a ten v případě problémů použít pro obnovu nastavení (volba "Import"). O tom, že se vyplatí si konfiguraci uložit jsem se bohužel už sám přesvědčil.

Tlačítkem "Add" můžeme dle potřeby přidávat profily pro starší nebo novější verze API.



Po nastavení cest se přidá nový profil do nabídky. Profilů může být definováno více, v jednu chvíli však může být pouze jediný aktivní.



2) Instalace USB ovladače
Aby bylo možné ladit aplikace přímo na zvoleném Android zařízení, musí být telefon nebo tablet registrován operačním systémem Windows a připojen za pomoci USB kabelu. Registraci zařízení je většině případů třeba provést manuálně. V nabídce "Start" vyhledáme "Správce zařízení", nebo jej spustíme přes "Ovládací panely" (Start => Ovládací panely => Hardware a zvuk => Správce zařízení".




Pozor, v systému bude pravděpodobně Váš tablet nebo telefon uveden dvakrát. Jednou jako "Přenosné zařízení" a jednou jako nerozpoznané "Další zařízení" nebo "Android device". Vybereme je tedy zobrazeném seznamu a klikneme na něj pravým tlačítkem myši. Z kontextové nabídky vybereme volbu "Aktualizovat software ovladače" a vyhledáme příslušný .inf soubor.



Protože Windows zpravidla nezvládnou mobilnímu zařízení přiřadit odpovídající ovladač, je třeba jej vyhledat. Generický ovladač od společnosti Google je možné stáhnout přes Android SDK Manažer.


Následně jej najdete v adresáři SDK, typické umístění ovladače je "C:\Users\Public\Documents\RADStudio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\extras\google\usb_driver.inf". Možné je samozřejmě i použití ovladače od dodavatele mobilního zařízení. Ty lze většinou najít na stránkách technické podpory daného výrobce. V některých případech lze ovladač získat pouze jako součást instalace doprovodných aplikací, jako jsou například Samsung Kies nebo HTC Sync Manager. Po úspěšné aktualizaci by se mělo Vaše zařízení objevit v nabídce cílových platforem v okně "Project Manager".



Tímto krokem je jak zařízení, tak prostředí připraveno pro vývoj a testování Android aplikací.

pondělí 7. října 2013

Vývoj pro Android II.


Příprava zařízení

Aby bylo možné překládat a ladit aplikace přímo za pomoci zařízení, musíme na příslušném telefonu nebo tabletu povolit ladění přes USB rozhraní. U zařízení s verzemi operačního systému Android 4.1.x nebo nižšími nalezneme tuto volbu v "Nastavení => {} Pro vývojáře => Ladění USB".



Protože režim ladění USB je určen výhradně vývojářům a při jeho nechtěném povolení si může zvláště nezkušený uživatel snadno zkomplikovat život, je tato možnost počínaje Androidem 4.2 Jelly Bean skrytá. Máte li tedy systém Android ve verzi 4.2 nebo vyšší, musíte nejdříve položku menu "{} Pro vývojáře" odemknout. V aplikaci "Nastavení" vybereme položku "Informace o tabletu => Verze jádra", na kterou je třeba celkem 7x poklepat (po třetím klepnutím se zobrazí odpočítávání, kolik klepnutí zbývá, aby z Vás byl vývojář) a pak již jen stačí ve zpřístupněné nabídce "{} Pro vývojáře" zapnout položku "Ladění USB" a svou volbu potvrdit.


Po dobu ladění je také vhodné potlačit automatické vypínání obrazovky volbou "Nevypínat obrazovku". Pro testování aplikací, které budou komunikovat s GPS modulem je ještě možné povolit takzvané "simulované polohy". Na GooglePlay je ke stažení aplikace "Fake GPS", díky které můžete následně na mapě zvolit polohu, kterou bude následně GPS hlásit jako aktuální.



Tímto je Vaše zařízení připraveno pro použití s Delphi nebo RAD Studiem XE5. Příště se zaměřím na konfiguraci vlastního vývojového prostředí.

středa 25. září 2013

Delphi XE5: Vývoj pro Android I.

Nová verze Delphi, která byla uvedena na trh 11. 9. letošního roku rozšířila podporu cílových platforem o populární operační systém Android. Android je velmi specifická platforma známá svou vysokou fragmentací. V praxi to znamená širokou škálu verzí, s kterou se může vývojář u svých potenciálních uživatelů setkat. Embarcadero se samozřejmě snažilo zajistit podporu všech dominantních verzí, ale v různých zemích může být situace odlišná a speciálně u starších nebo levnějších zařízení je možné lidově řečeno "narazit".  
Před zahájením vývoje aplikací pro Android v Delphi XE5 je proto víc než vhodné ověřit, zda máte k dispozici zařízení odpovídající systémovým požadavkům. Předejdete tak frustraci, že Vaši aplikaci nespustíte a budete dlouze pátrat po příčinách. Zároveň je to důležitá informace z hlediska nasazení hotových aplikací u cílových uživatelů. Pojďme se tedy podívat, jaké požadavky musí zařízení splňovat:

1) ARM 7 - První podmínkou pro úspěšné sestavení a spuštění aplikace je verze architektury procesoru ARM. Sama společnost ARM již procesory nevyrábí. Mobilních zařízení navíc používají čipy, které integrují i grafické jádro, paměti, komunikační moduly a podobně. Můžeme se tak setkat s čipy od Samsungu, Nvidie nebo společnosti Texas Instruments. Delphi XE5 vyžadují koncové zařízení s procesory s architekturou ARMv7, což je většina procesorů rodiny Cortex. Ucelený přehled naleznete na http://cs.wikipedia.org/wiki/ARM.


2) NEON - Aplikace vytvořené v Delphi XE5 vyžadují podporu technologie NEON. NEON (http://www.arm.com/products/processors/technologies/neon.php) je rozšíření instrukční sady procesourů ARM, které významně urychluje zpracování určitých typů úloh jako je renderování nebo práce s multimédii. Toto rozšíření bohužel nepodporují procesory s označením Tegra2 společnosti Nvidia.


3) Android - Na koncovém zařízení musí být dále instalována některá z podporovaných verzí operačního systému Android. Jedná se o následující verze (API):

  • Jelly Bean, tedy Android ve verzi 4.1.x, 4.2.x nebo 4.3.x (API Level 16, 17 a 18)
  • Ice Cream Sandwich, Android 4.0.3 nebo 4.0.4 (API Level 15)
  • Gingerbread, Android 2.3.3 - 2.3.7 (API Level 10)
V případě, že zařízení odpovídá HW požadavkům, ale má instalovanou některou z nepodporovaných verzí OS, ověřte možnost upgrade. V ideálním případě tuto možnost naleznete v menu "Nastavení => Aktualizace software". Pokud tuto možnost zařízení nenabízí, doporučuji se obrátit na prodejce. Na GooglePlay je sice k dispozici řada "ROM Manažerů" a "ROM Updaterů", ale vzhledem k variabilitě zařízení a licencování je zde riziko, že zařízení po aktualizaci nebude pracovat.
Výše uvedené systémové nároky si lze ověřit na základě specifikací jednotlivých zařízení, jak je uvádí dodavatel, nebo díky volně dostupné aplikaci Christophera Moellera "SysCheck". Aplikace je ke stažení přes aplikační obchod GooglePlay.





Jestliže zatím žádné zařízení nevlastníte a o jeho nákupu teprve uvažujete, doporučuji zakoupit některé z přímo podporovaných přístrojů:

  • Google Nexus 4, 7 a 10
  • Samsung Galaxy SII a S4



Bližší informace o podporovaných zařízeních včetně informací jak byly testovány naleznete na http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development.
U nejlevnějších telefonů a tabletů (Colorovo, GoClever, Point Of View, Acer apod.) jsou často používány jednotky Cortex-A9, které mají technologii NEON jako volitelné rozšíření. Pokud nebudete mít jistotu, že konkrétní zařízení podporu NEON obsahuje, jeho nákupu se rozhodně vyhněte.

sobota 14. září 2013

Komponenty a grafika

V minulých příspěvcích jsem se věnoval stylům a možnostem jejich přizpůsobení. Víme tak, že většina komponent je ve FireMonkey tvořena s využitím základních tvarů vektorové grafiky. Ty nejběžnější najdeme v paletě nástrojů v záložce "Shapes". Navíc zde je k dispozici také třída "TPath". Tu využijeme v případech, kdy si hodláme vytvořit vlastní komponentu nebo grafický objekt, který nabídka "shapes" nepokrývá.


PATH, neboli cesta je standardizovaný zápis definice pro tvorbu nových grafických tvarů. Ve FireMonkey je lze použít také pro některé druhy animací. PATH pracují se souřadnicovým systémem, kde "x" roste směrem vpravo a "y" směrem dolů. Souřadnice bodů mohou při zápisu oddělené buď mezerou nebo čárkou.

Syntaxe PathData je velmi jednoduchá a je tvořena několika základními příkazy:
  • M (Move) - Určuje počáteční bod nového obrazce
  • L (Line) - Nakreslí přímku z aktuálního do určeného bodu
  • H (Horizontal line) - Nakreslí horizontální přímku z aktuálního do určeného bodu
  • V (Vertical line) - Nakreslí vertikální přímku z aktuálního do určeného bodu
  • A (Arc) - Vykreslí Eliptickou křivku
  • C (Curve) - Nakreslí obecnou křivku
  • S (Smooth curve) - Vyhlazená obecná křivka
  • Q (Quadratic Bézier) - kvadratická Bézierova křivka
  • T (Smooth quadratic Bézier) - Vyhlazená kvadratická Bézierova křivka
  • Z (Close) - Uzavření kresby
Příklady: 
přímka: "L 20,30"
trojúhelník: "M 50, 50 100, 50 100, 100 50, 50"
kruh: "M -1,0 A 1,1 0 1 1 1,0 M -1,0 A 1,1 0 1 0 1,0"

Pro složitější tvary je samozřejmě výhodnější použít místo ručního zápisu souřadnic některý z editorů podporujících SVG. Vhodnou volbou je například Inkscape. Inkscape (ke stažení na http://inkscape.org/) je volně dostupný vektorový grafický editor podobný programům jako jsou Adobe Illustrator, CorelDraw a podobně. Inkscape je založen na standardu SVG. Je tak ideálním nástrojem, který lze použít pro vytváření nových tvarů, objektů nebo cest pro animace pro FireMonkey.


V hlavní nabídce klikneme na volbu "Úpravy => Editor XML". Editor zobrazí vytvořenou grafiku jako XML dokument. V levé části okna rozbalíme strukturu dokumentu a označíme "svg:path". V pravém horním okně vybereme data ("d"). Pravé spodní okno nyní zobrazí "path data", která si zkopírujeme do schránky.




V Delphi si založíme nový projekt (File => New => FireMonkey Desktop Application) a na formulář umístíme komponentu "TPath". V inspektorovi objektů najdeme vlastnost "Data" a klikneme na tlačítko pro otevření dialogu pro vložení "PathData".




Do dialogu zkopírujeme "PathData" ze schránky. V pravé části okna se pro kontrolu okamžitě zobrazí náhled grafiky vytvořené na základě vložených dat.




Pokud jsme s výsledkem spokojeni, potvrdíme tlačítkem "OK". V inspektorovi objektů ještě můžeme změnit barvu výplně (parametr "Fill") na žlutou a je hotovo.



Stejným způsobem je možné vytvářet i cesty pro animace, které mohou být rovněž popsány za pomoci "PathData". Použití "svg" objektů je možné jak v HD tak 3D projektech.