Ruku v ruce s rostoucí komplexností programovacích nástrojů se bohužel prodlužuje i čas, který je třeba věnovat jejich nastavení a přizpůsobení konkrétním potřebám či zvyklostem. Reinstalace nebo aktualizace tak je pro mnohé vývojáře noční můrou.
Prostředí RAD Studia, Delphi i C++Builder byla proto rozšířena o nástroj "Migration Tool". S jeho pomocí lze všechna nastavení, která se provádí v rámci prostředí (nabídka "Tools => Options") zálohovat a následně uložit. Nástroj je primárně určen k přenesení existujících nastavení a přizpůsobení do vyšší verze prostředí, například při přechodu na aktuální verzi nebo jeho aktualizaci. Lze jej ale stejně dobře použít i k uchování uživatelem ověřeného, funkčního stavu.
Nástroj "Migration tool" je samostatně spustitelná aplikace (.exe), která je umístěna v adresáři "bin" instalace RAD Studia, Delphi nebo C++Builderu. Standardní cesta k adresáři bin (pro verzi Rio) je "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin".
Po spuštění nástroje je třeba zvolit, která operace má být provedena. Pro zálohu "Export settings to a migration file", pro přenesení nastavení do novější verze pak "Migrate settings to a newer product version".
Je třeba vybrat verzi, jejíž nastavení mají být uložena:
Následně je možné vybrat nastavení, která mají být zálohována. Lze tak provést částečnou zálohu/obnovu pro zvolené sekce nastavení:
Určíme umístění a název souboru do kterého budou nastavení uložena:
Po stisknutí tlačítka "Finish" se provede záloha všech vybraných nastavení. Nyní můžeme původní verzi odinstalovat a nainstalovat novou a spustit obsažený "Migration Tool" a načíst příslušnou konfiguraci:
Díky možnosti vybrat jen některá nastavení, je možné uloženou konfiguraci použít i k sjednocení důležitých nastavení v rámci týmu, přenést je na jiný počítač, nebo opravit nastavení, která byla poškozena při "experimentování".
S aplikacemi, které se obejdou bez jakékoliv integrace, se již
dnes často nesetkáme. Zajištění propojení s externími systémy či službami se
tak stává pro vývojáře a programátory jednou z největších výzev. Znamená to
opustit důvěrně známé vody vlastního kódu a spoléhat se na nabízená rozhraní a
k nim dostupnou dokumentaci. Jedná se tak zpravidla o časově náročnou
záležitost a čas jsou peníze.
To si uvědomila i společnost CData a přišla s řešením, které
je jednoduché, a především rychle aplikovatelné. Myšlenku, na které je
technologie konektorů založena, nejlépe charakterizuje slogan, který má
společnost CData na svých webových stránkách: "Dívejte se na svět jako na
databázi".
CData vytvořila mezivrstvu, která využívá nativní API
integrovaných systémů, aby ji následně uživatelům zpřístupnila, jako by se
jednalo o standardní relační databázi, se kterou lze komunikovat s využitím
standardního jazyka SQL. Tím odpadá nutnost studovat nové protokoly či API,
které se navíc neustále vyvíjí a mění. Speciálně pro vývojová prostředí Delphi a C++Builder pak
vznikla (a je dále rozšiřována) sada ovladačů pro použití s populární technologií
FireDAC.
Použití v aplikaci
Instalace jednotlivých konektorů jsou dostupné přímo z
prostředí Delphi, C++Builderu nebo RAD Studia. Stačí spustit "GetIt
Package Manager", (Hlavní nabídka prostředí -> Tools -> GetIt) a pro
rychlejší nalezení požadovaného ovladače použít filtrování (je zde přímo
kategorie "Connectors") nebo vyhledávání. Následně již jen spustíte
instalaci zvoleného ovladače kliknutím na tlačítko "INSTALL".
Po dokončení instalace nalezneme vybrané konektory v paletě
nástrojů, v sekci "FireDAC Links".
Práci s konektory si můžeme ukázat na propojení s emailovou
službou Seznam. Založíme novou aplikaci VCL a pro uživatelské rozhraní použijeme
komponenty "FDConnecion", "FDTable", "DBMemo",
"ComboBox", "FDGUIxWaitCursor", "DataSource" a
"DBGrid".
Pro vlastní připojení k serverům společnosti Seznam použijeme
komponentu TFDConnection, kterou si pojmenujeme například "EmailCnn":
Po úspěšném připojení je třeba zvolit, která data má aplikace
zobrazovat. V praxi to znamená vybrat si z tabulek, které jsou pro daný systém (v
našem případě email) definovány. Zde se buď musíme podívat do dokumentace, zvolit
tabulku dle názvu v okně ObjectInspector (musí být vybrána komponenta
"FDTable" a připojena k aktivní "FDConnection"), nebo můžeme
využít vlastností technologie FireDAC, načíst dostupné tabulky z „metadat“ a
nechat výběr na uživateli.
procedure TwMain.ComboBox1Click(Sender: TObject);
var
tbName: String;
i: Integer;
begin
tbName :=
ComboBox1.Text;
FDQuery1.Active :=
False;
FDQuery1.SQL.Clear;
if tbName.Length
> 0 then
FDQuery1.SQL.Add('select * from ' + tbName);
FDQuery1.Open();
DataSource1.DataSet
:= FDTable;
DBGrid.DataSource :=
DataSource1;
DBMemo1.DataSource
:= DataSource1;
DBMemo1.DataField :=
'MessageBody';
end;
Protože tabulky, se kterými pracujeme jsou pouze virtuální a
neříkají nic o skutečné struktuře systému, není zpravidla možné jednoduše
vložit data do některé z tabulek. Může zde být řada vazeb a integritních
omezení.
Pokud se budeme držet příkladu s e-mailovým serverem, je
celkem zřejmé, že vložením záznamu do tabulky odeslané pošty k odeslání zprávy
nedojde. I toto však CData řeší databázovými prostředky. Podobně jako virtuální
tabulky, vytváří ovladač také sadu uložených procedur. Do projektu tak stačí
přidat komponentu "FDStoredProcedure" a napojit ji na dříve
definovanou "FDConnection". Pro požadovanou operace pak již jen stačí
zavolat příslušnou proceduru.
Aktuálně je k dispozici 83 ovladačů pro populární podnikové
systémy z oblastí ekonomiky, účetnictví, řízení vztahů se zákazníky (CRM) nebo
řízení podnikových zdrojů (ERP). Dále jsou zde obsaženy konektory pro cloudové
služby, platební systémy, datové formáty či sociální sítě.
Konektory nejsou nabízeny jednotlivě, ale v sadách. Vybrat
si můžete variantu Enterprise nebo více vybavenou Enterprise+. Sada Enterprise obsahuje:
V sadě Enterprise+ naleznete navíc ještě tyto konektory:
Ne vždy je možné programovat komunikaci s databázovým strojem "natvrdo". Důvodem může být, že chceme navrhnout aplikaci tak, aby se byla schopna vypořádat s případnými změnami ve struktuře databáze, nebo chceme poskytnout uživateli možnost sestavovat některé dotazy takzvaně "Ad-Hoc" (tedy v daném okamžiku).
Aby bylo možné sestavit funkční SQL příkaz, musíme mít přístup k "metadatům", které popisují strukturu a vlastnosti jednotlivých objektů databáze. Tyto informace můžeme zjistit hned několika způsoby.
Systémové tabulky
Každý databázový stroj si udržuje informace o objektech, které spravuje. Tyto informace jsou dostupné v závislosti na typu databáze prostřednictvím systémových tabulek, pohledů a procedur. Například seznam existujících tabulek tak lze zjistit spuštěním standardního SQL dotazu:
Oracle:
SELECT owner, table_name FROM dba_tables; MSSQL:
SELECT * FROM INFORMATION_SCHEMA.TABLES; Sybase:
SELECT * FROM sys.objects WHERE type = 'U'; InterBase / Firebird:
select rdb$relation_name from rdb$relations
where rdb$view_blr is null and (rdb$system_flag is null or rdb$system_flag = 0);
Na první pohled je zřejmé, že tento přístup má dvě úskalí. Abychom mohli získat informace o existujících objektech (které neznáme), musíme znát strukturu systémových tabulek. A co je horší, řešení založené na systémových tabulkách je "svázáno" s konkrétním databázovým strojem. Z hlediska přenositelnosti tedy nic moc.
Komponenty FireDAC
FireDAC se snaží na rozdíl od systémových tabulek nabídnout obecný koncept, co nejvíce nezávislý na databázové platformě. Protože databázové stroje mohou mít různou architekturu a jednotná není ani terminologie dodavatelů, vychází FireDAC z obecného uspořádání:
Komponenty FireDAC nabízí hned několik způsobů, jak je možné
informace o struktuře databáze získat.
1) Na úrovni připojení
Pokud potřebujeme informace o aktuálním připojení (k jaké databázi je aplikace připojena, pod jakým účtem apod.), stačí zavolat funkci "GetInfoReport". Ta vrací seznam hodnot, kterou zapíše do určené proměnné typu "TStrings". Pokud tedy jako parametr této funkce použijeme odkaz na řádky komponenty "TMemo", dojde k zobrazení všech požadovaných informací.
Příklad 1: načtení informací z "GetInfoReport"
procedure TForm1.btnGetCnnInfoClick(Sender: TObject);
begin
FDCnn.GetInfoReport(mCnnInfo.Lines);
end;
Pro zjištění informací o jednotlivých objektech pak můžeme využít konkrétní funkce:
GetCatalogNames - pro přehled instancí, katalogů nebo databází, které server spravuje. GetSchemaNames - pro seznam schemat, jmenných prostorů nebo vlastníků objektů ve vybraném katalogu. GetTableNames - pro seznam tabulek ve vybraném katalogu a schematu. GetFieldNames - pro seznam sloupců určené tabulky. GetKeyFieldNames - pro seznam sloupců obsažených v primárním klíči. GetIndexNames - pro seznam indexů určené tabulky. GetPackageNames - pro seznam balíčků ve vybraném katalogu a schematu. GetStoredProcNames - pro přehled uložených procedur obsažených ve zvoleném balíčku. GetGeneratorNames - vrací přehled generátorů primárních klíčů. GetLastAutoGenValue - vrací poslední hodnotu generátoru, sekvence nebo autoikrement určeného sloupce.
Vstupní a výstupní parametry:
Všechny uvedené funkce předávají seznam názvů objektů do určené proměnné typu "TStrings".
TFDPhysObjectScopes osMy - zahrne do seznamu objekty přihlášeného uživatele osSystem - zahrne do seznamu systémové objekty osOther - zahrne do seznamu ostatní objekty
TFDPhysTableKinds tkSynonym - zahrne do seznamu synonyma tkTable - zahrne do seznamu tabulky tkView - zahrne do seznamu tabulkové pohledy
Pattern
Umožňuje specifikovat název objektu za pomoci textového řetězce. Syntaxe je shodná se standardním SQL operátorem "Like", kde '%' nahrazuje libovolný počet znaků a '_' právě jeden libovolný znak.
Příklad 2: Získání přehledu všech tabulek v DB InteBase:
Pozn.: InteBase nevyužívá členění do Katalogů a Schemat. V takovém případě se jako parametr použije prázdný řetězec.
2) Komponenta "FDMetaInfoQuery"
Dalším způsobem, jak za běhu zjišťovat informace o databázových objektech je použití komponenty "FDMetaInfoQuery". Jedná se o standardní "DataSet", jehož obsah lze snadno konfigurovat za pomoci vstupních parametrů.
Typ objektu, jehož metadata potřebujeme získat, určuje parametr "MetaInfoKind". Jeho hodnota může být mkNone, mkCatalogs, mkSchemas, mkTables, mkTableFields, mkIndexes, mkIndexFields, mkPrimaryKey, mkPrimaryKeyFields, mkForeignKeys, mkForeignKeyFields, mkPackages, mkProcs, mkProcArgs, mkGenerators, mkResultSetFields nebo mkTableTypeFields.
Příklad 3: Zjištění informací o sloupcích tabulky FIRMA
3) Objekty "FDTable", "FDQuery" nebo "FDStoredProc"
Pokud známe jméno tabulky nebo uložené procedury, můžeme získat podrobné informace přímo ze získané datové sady.
Příklad 4: Zjištění názvů sloupců z komponenty "FDQuery"
procedure TfrmMain.ButtonGetFields(Sender: TObject);
var
AList: TStringList;
i: Integer;
begin
AList := TStringList.Create;
FDQuery1.GetFieldNames(AList);
end;
Příklad 5: Zjištění vstupních parametrů uložené procedury:
procedure TfrmMain.ButtonGetSPParams(Sender: TObject);
var
i, n: Integer;
pname: String;
pType: TParamType;
begin
n := FDStoredProc1.ParamCount;
for i := 0 to n - 1 do
begin
pname := FDStoredProc1.Params[i].Name;
pType := FDStoredProc1.Params[i].ParamType;
if pType = TParamType.ptInput then
Memo1.Lines.Add(pname);
end;
end;
Pokud potřebujete navrhnout aplikaci tak, aby se dokázala pružně přizpůsobit případným změnám ve struktuře databáze, nabízí Vám RAD Studio a FireDAC víc než dostatečné možnosti, jak toho dosáhnout.
Při instalaci RAD Studia, Delphi nebo C++Builderu se můžete setkat s chybovým hlášením "Maximum Path Length Limitation". Překročení maximální délky proměnné PATH bývá zpravidla způsobeno větším počtem instalovaných aplikací. Už samo RAD Studio, Android SDK, Windows SDK a doplňkové komponenty z maximálního limitu dokáží ukrojit notnou dávku :-).
Problém se také často objevuje při přechodu na vyšší verzi RAD Studia. Standardní odinstalace bohužel nepotřebné záznamy z PATH neodstraňuje, a tak proměnná postupně bytní:
Řešení
1) Odstranění nepotřebných záznamů
2) Nahrazení opakujících se sekvencí proměnnou - Cesty k souborům, které RAD Studio pro svůj běh využívá se liší až v poslední části textového řetězce. Opakující se část je tak možné jednoduše nahradit pomocnou proměnnou. Například tedy:
Domovská složka RAD Studia „C:\Program Files (x86) \Embarcadero\Studio\19.0“ = RX
Uživatelská složka „C:\Users\Public\Documents\ Embarcadero\Studio\19.0“ = RXU
Výsledný obsah proměnné PATH tak může vypadat následovně:
3) Navýšení limitu pro proměnnou PATH - Windows 10 (ve verzi Anniversary Update a novějších) umožňuje povolení „dlouhých cest“ a definovat proměnnou PATH delší než 260 znaků. Ale pozor: aplikace typu Win32, které nemají ve svém manifestu nastaveno „longPathAware“ na „true“ pak nemusí být schopny cesty z proměnné PATH načíst.
Kde se PATH nastavuje?
Ve Windows 7: Počítač->Vlastnosti->Upřesnit nastavení systému->Upřesnit->Proměnné prostředí
Ve Windows 10: Klikněte pravým tlačítkem myši na ikonu Windows a z nabídky vyberte „System“. V okně, které se otevře, zvolte „Upřesnit nastavení systému“. Ve vlastnostech systému pak klikněte na tlačítko „Proměnné prostředí“.
O proměnné PATH
Windows API definuje umožňuje nastavit maximální délku pro proměnnou PATH parametrem MAX_PATH. Z důvodu zpětné kompatibility pro Win32 aplikace je nastavena na 260 znaků. Délka 260 znaků je dána strukturou proměnné. Jedná se o písmenné označení úložiště, dvojtečku, zpětné lomítko, 256 znaků dlouhý řetězec a ukončovací "null" znak použité kódové stránky. Jedná se tedy 1+2+256+1=260 znaků, a to je vzhledem k možnosti používat dlouhá jména složek a souborů limit relativně snadno překročitelný.
Instalace vývojových nástrojů, které mají přece jen k operačnímu systému blíž, než běžné aplikace se neobejde bez zápisů do registrů Windows. Vezmeme li v úvahu jen množství nastavení pro vlastní prostředí, používané knihovny a překladače, jedná se o slušnou porci klíčů a parametrů. Řada zápisů je navíc "neveřejná", protože pomáhá chránit nástroj před jeho nelegálním používáním.
Mnoho vývojářů používá současně více verzí (například kvůli údržbě starších projektů), ale někdy přece jen potřebujeme staré verze odstranit. U nových verzí pomůže s odinstalací verze předchozí (týká se především Update, kde zachování předchozí verze postrádá smysl) sám instalátor. U verzí, které již mají svou "historickou hodnotu" je to ale právě vzhledem k zápisům v registrech trochu Voodoo.
Snad Vám tedy trochu pomůže seznam odkazů, které jsem posbíral a které obsahují návody od techniků Embarcadera na manuální odstranění starších verzí:
Společnost Embarcadero na zatím blíže neurčenou dobu poskytuje slevu ve výši 100% na edice Starter nástrojů Delphi a C++Builder ve verzi 10.1 Berlin. Moderní prostředí pro práci s jazyky Object Pascal nebo C++ tak lze získat místo za původních 10 890 Kč zcela zdarma! Na rozdíl od všech ostatních produktů je edici Starter zdarma možno objednávat pouze na webovém obchodě společnosti Embarcadero (viz odkazy níže).
Co edice Starter nabízí
Starter edice nabízí zcela shodné prostředí jako vyšší edice. Je zde pokročilý editor kódu s našeptávačem, vizuální návrhář i knihovny VCL (Visual Component Library) a FireMonkey.
Lze vytvářet klasické i konzolové aplikace. Možnosti jazyka (ať již Object Pascalu nebo C++) nejsou nijak omezené. Jedná se tak o ideální nástroj pro ty, kdo se chtějí naučit objektovému programování nebo pro psaní nejrůznějších pomocných programů.
2) Vyberte edici Starter a zkontrolujte si, že výsledná cena je 0,- €
3) Svou volbu potvrďte stiskem tlačítka "Add to Cart"
4) Pokud již máte u společnosti Embarcadero založený účet EDN, přihlaste se pomocí tlačítka "Login". V opačném případě vyplňte do formuláře Vaše kontaktní údaje:
Nezapomeňte si vhodným způsobem uložit zvolené heslo. Bude Vám automaticky vytvořen účet EDN a zadaná e-mailová adresa spolu s heslem budou Vašimi přístupovými údaji!
Pro stažení instalace produktu pokračujte stiskem tlačítka "Download Now >".
5) Stáhněte si instalaci produktu.
6) Ve schránce zadané e-mailové adresy si vyzvedněte sériové číslo staženého produktu:
7) Produkt nainstalujte. Dodaná licence je typu "Pojmenovaný uživatel". Získáváte tak oprávnění instalovat produkt na zvolené počítače (pracovní PC, domácí PC, notebook). Licence je vázána výhradně na uživatele a nesmí být sdílena s jinými osobami, uživatel rovněž nesmí používat stejnou licenci souběžně (tj. v jednu chvíli) na dvou počítačích.
Jaká jsou omezení
Cílové platformy - Delphi i C++Builder jsou multiplatformní nástroje, které umožňují překlad zdrojového kódu pro zvolený operační systém. Edice Starter podporuje pouze tvorbu aplikací pro 32-bitové Windows. Edice Professional přidává Win64 a Mac OS X. Pokud hodláte své aplikace šířit i na mobilní zařízení s operačními systémy Android nebo iOS, je třeba zakoupit edici Professional s Mobile Add-On balíčkem, nebo edici Enterprise.
Připojení k datovým zdrojům - Vývojové nástroje společnosti Embarcadero jsou vybaveny řadou technologií pro práci s daty. Aktuálně nejpoužívanější jsou FireDAC a IBExpress. Pro prezentaci dat se pak používají DataAware komponenty (VCL), nebo technologie LiveBindings (FMX). Edice Starter tyto vlastnosti nepodporuje. Pro lokální připojení (databáze je umístěna na stejném stroji jako aplikace) potřebujete edici Professional, pro připojení k databázovým strojům přes TCP/IP pak edici Professional s rozšířením FireDAC Add-On nebo edici Enterprise.
Komponenty - V edici Starter lze napsat prakticky cokoliv. Profesionální vývoj však přináší požadavky na daleko vyšší produktivitu. Většinou tak nedává smysl programovat to, co již existuje. Obrovskou předností nástrojů Delphi a C++Builder je široká nabídka hotových řešení dodávaných ve formě bezplatných či komerčních komponent. Proti vyšším edicím musíme u edice Starter oželet oblíbený návrhář výstupních sestav FastReport, komponenty IP*Works pro práci se síťovými protokoly nebo grafy TeeChart. I když obecně není licencí pro Starter "zakázáno" instalovat do prostředí externí komponenty, většinou tomu brání některá z technických omezení.
Licenční omezení - Edice Starter je komerční, časově neomezená licence. Přesto zde jsou určitá omezení. V rámci podniku smí být používáno nejvýše pět licencí. Uživatelé smějí prodávat aplikace nebo komponenty vytvořené pomocí edic Starter, roční příjem z prodaných licencí nebo služeb však nesmí přesáhnout ekvivalent 1000 amerických dolarů.
Bezplatně lze získat (stáhnout) pouze jednu licenci na jednu platnou e-mailovou adresu (EDN účet). Bezplatná licence neobsahuje službu předplatného a technické podpory.
Úplné porovnání dostupných edic nástrojů Delphi a C++Builder 10.1 Berlin naleznete zde.
Informace k instalaci
Přechod ze zkušební verze produktu - Je li na Vašem počítači instalovaná zkušební ("Trial") verze produktu, nejprve ji odinstalujte a z počítače odstraňte její licenční soubor (jeho název naleznete v aplikaci "LicenseManager", kterou lze spustit přímo z prostředí: hlavní nabídka -> Help -> License Manager).
Dejte si ale pozor: Nová instalace RAD Studia, Delphi nebo C++ Builderu hledá dříve instalované licence. Nalezne-li informaci o dříve instalované zkušební verzi, převezme automaticky její licenční informace (a to včetně data vypršení její platnosti). Uživatel není vyzván k zadání sériového čísla, nainstalovaný produkt neodpovídá zakoupené licenci a není tedy funkční.
Přechod na vyšší edici produktu - Společnost Embarcadero nepravidelně oslovuje uživatele marketingovými akcemi, které umožňují získat licence za výhodnější cenu. Pokud se rozhodnete zdarma získanou licenci upgradovat na některou z vyšších edic, je třeba dodržet následující postup:
1) Spustíme licenční manažer (viz výše). S jeho pomocí přidáte a zaregistrujete získané seriové číslo "vyšší" edice.
2) Stejně jako v případě zkušebních licencí z počítače ostraníme licenční soubor pro edici Starter.
3) Edici Starter odinstalujeme za pomoci nástroje "Windows Control Panel". Pokud instalujeme vyšší edici stejné verze, je možné přímo spustit instalační program, který předchozí instalaci odstraní automaticky.
4) Spustíme instalační program pro zakoupenou edici, který požádá o vložení nového licenčního klíče.
Windows 10 jsou univerzálním systémem, který by měl být dobře použitelný jak na stolních tak přenosných zařízeních. Z obou světů se snaží nabídnout uživatelům jednak to nejlepší a jednak to, na co jsou uživatelé zvyklí. Na stolní počítače tak proniklo například centrum akcí, které jsem zmiňoval minule.
Centrum sdílení
Další podobnou funkcionalitou převzatou z "mobilního světa" je zjednodušení nejběžnějších uživatelských postupů (workflow). Ta byla zřejmě motivována snahou do jisté míry kompenzovat absenci klávesnice a myši u telefonů a tabletů, výrazně zpříjemnit práci však může i na PC. Vytvoříme-li v aplikaci nějaký obsah (data, obrázky, multimédia) a potřebujeme jej předat jinému programu, stačí zvolit možnost sdílet a vybrat aplikaci, které jej chceme předat. Odpadá tak nutnost na tabletu ne úplně pohodlného "copy - paste" nebo uložení a import souboru.
RAD Studio 10.x umožňuje rozšířit aplikace o sdílení obsahu za pomoci nové komponenty "Sharing Contract". Některé časté operace tak lze podstatně zjednodušit, což ocení i uživatelé, kteří Windows 10 provozují na zařízeních bez dotykové obrazovky.
Sdílení obsahu mezi aplikacemi zajišťuje operační systém, v tomto případě Windows 10. Aplikace musí vytvořit v požadovaném tvaru "balíček dat" a odkaz na něj odeslat správci sdílení. Ten nabídne uživateli seznam cílových aplikací, které jsou registrovány a umí v balíčku obsažená data zpracovat.
Komponenta "Sharing Contract" výše uvedené kroky "zapouzdřuje" a zjednodušuje tak jejich implementaci.
Další novou komponentou, která ve VCL pro podporu Windows 10 přibyla je RelativePanel. Můžeme jej využít všude tam, kde je třeba přizpůsobit rozmístění či velikost prvků velikosti obrazovky. RelativePanel slouží jako kontejner, do kterého lze umisťovat další vizuální komponenty. Na jednotlivé komponenty lze následně odkazovat pomocí indexu, který jim byl v rámci kolekce přiřazen a stanovit jejich polohu vůči jiné komponentě nebo panelu samému. Možnosti jsou:
Delphi
Zarovnání k pravému, levému, hornímu nebo spodnímu okraji komponenty RelativePanel:
rp.ControlCollection[0].AlignLeftWithPanel := True;
Přichycení nad, pod, zleva nebo zprava k určené komponentě:
rp.ControlCollection[5].RightOf := Label1;
Horizontální nebo vertikální vystředění vzhledem ke komponentě RelativePanel:
rp.ControlCollection[9].AlignHorizontalCenterWithPanel := True;
Horizontální nebo vertikální vystředění vůči určené komponentě:
rp.ControlCollection[7].AlignVerticalCenterWith := Label2;
Pozor! Komponenta "RelativePanel" nehlídá možné křížové závislosti nebo protichůdné požadavky. Je proto vhodné ošetřit, aby nedošlo k například k překrytí ovládacích prvků nebo třeba k jejich posunutí mimo formulář.
Rozteč, tedy vzdálenost mezi prvky lze kontrolovat definováním okrajů jednotlivých prvků:
label1.Margins.Left := 20;
Info: Okraje (Left|Right|Top|Bottom) jsou přednastaveny na hodnotu 3.
ActivityIndicator je náhradou za staré dobré "přesýpací hodiny". Protože umožňuje nastavení řady parametrů, vytvořila pro ně společnost Embarcadero samostatnou komponentu. Nastavit lze:
Komponenta Toggle Switch je vhodnou alternativou ke komponentě CheckBox. Odhlédneme-li od vzhledu, je její hlavní předností použití na dotykových zařízeních, protože lze nastavit její velikost a lze ji tak pohodlně obsluhovat i "tlustými prsty".
Delphi
if TSAnimate.State = tssOn then
ActivityIndicator.Animate := True;
else
ActivityIndicator.Animate := False;
SearchBox je tvořen kombinací dvou v Delphi či C++Builderu běžně používaných komponent kterými jsou edit box a klasické tlačítko. Podle zvoleného nastavení může komponenta reagovat na stisk tlačítka (ikony) nebo na klávesu Enter. V obou případech je vyvolána událost "OnInvokeSearch".