úterý 22. března 2016

Windows 10 (část 1.)

RAD Studio 10 Seattle a Windows 10

Ještě do 29. července 2016 mohou všichni uživatelé, kteří na svém PC používají Windows 7 a vyšší využít bezplatného přechodu na Windows 10. Takto získaná licence je vázána na konkrétní počítač, není však časově ani funkčně omezena. Jednou z hlavních výhod přechodu na Windows 10 jsou aktualizované ovladače, podpora některých nových technologií a vyšší úroveň zabezpečení systému. Důležitá je také podpora systému ze strany společnosti Microsoft, která je pro Windows 10 garantována do roku 2020 respektive do roku 2025.

Společnost Emabarcadero zareagovala vydáním nové verze vývojových nástrojů 10 Seattle. Ty umožňují využít mnohé z nových vlastností, které Windows 10 přinesly:

Vylepšení na úrovni prostředí
  • RAD Studio IDE je schopno pracovat s větší velikostí paměti
  • Prostředí podporuje práci s více monitory a s monitory 4K
Nové doplňky a komponenty
  • Nové vizuální styly Windows 10
  • Možnost provázání aplikace s centrem akcí
  • Nové komponenty „SplitView“ a „RelativePanel“
  • Sdílení dat aplikace prostřednictvím „Share Contracts“
  • Windows 10 ovládací prvky „SearchButton“, „ToggleSwitch“ a „ActivityIndicator“
Vzhled aplikace (stylování)
Spolu s uvedením verze 10 Seattle uvolnila společnost Embarcadero nové styly pro knihovny VCL a FireMonkey. Upravit stávající aplikaci tak, aby si uživatel mohl změnit její vzhled, je velmi jednoduché. Nejprve ve vlastnostech projektu (Shift+Ctrl+F11), v sekci „Application/Appearance“ je třeba vybrat styly, které mají být uživatelům k dispozici pro individuální nastavení.

Výběr dostupných stylů


Pozor! Základní styl "Windows" nesmí být nastaven jako defaultní.

V kódu je třeba do sekce uses přidat odkaz na jednotku vcl.Themes. To nám umožní využívat služby Správce Stylů. Pro výběr požadovaného stylu můžeme použít například komponentu ComboBox.


Delphi


uses
  …, Vcl.Themes;

// ComboBox naplníme dostupnými styly:
procedure TForm1.FormCreate(Sender: TObject);
var
  StyleName: String;
begin
  for StyleName in TStyleManager.StyleNames do
    cb1.Items.Add(StyleName);
end;

// Do události OnChange komponenty ComboBox přidáme
// kód pro změnu aktuálního stylu:

procedure TForm1.cb1Change(Sender: TObject);
begin
  TStyleManager.SetStyle(cb1.Text);
end;


C++ Builder


//Do hlavičkového souboru doplníme
#include <Vcl.Themes.hpp>

//Naplnění ComboBoxu:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  DynamicArray<String> styleNames = Vcl::Themes::TStyleManager::StyleNames;
  for (int i = 0; i < styleNames.Length; ++i)
     {
       String styleName = styleNames[i];
       cb1->Items->Add(styleName);
     }
}

//Nastavení zvoleného stylu:
void __fastcall TForm1::cb1Change(TObject *Sender)
{
  TStyleManager::SetStyle(cb1->Text);
}

Výsledný vzhled aplikace


Spolupráce aplikace s Centrem Akcí
Windows 10 si kladou za cíl být jednotící platformou, která na všech typech zařízení umožní uživatelům pracovat tak, jak jsou zvyklí. Protože přibývá uživatelů, kteří si své návyky přináší z chytrých telefonů nebo tabletů, setkáme se ve Windows 10 i s prvky, které byly dříve výhradně doménou mobilních zařízení. 
Jedním z nich je "Centrum akcí". Podobně jako u systémů Android nebo iOS se jedná o rychle přístupnou oblast, prostřednictvím které je uživatel informován o důležitých událostech, a z které lze realizovat většinu běžných úloh.

Centrum akcí (Android, iOS, Win10)
  

Služeb "Centra akcí" mohou využívat i aplikace napsané v Delphi nebo C++Builderu 10 Seattle. Pro tento účel zde přibyla VCL komponenta TNotificationCenter. S využitím komponenty „Notification“ stačí vytvořit novou instanci upozornění, nastavit potřebné parametry a odeslat „Centru akcí“. Komponenta rovněž umožňuje ošetřit událost „ReceiveLocalNotification“, která je vyvolána, když uživatel potvrdí přijetí oznámení (klikne na něj myší). Z aplikace tak můžeme uživatele informovat o libovolné události (např. dokončení nějaké operace) a pokud uživatel zprávu přijme, aplikaci maximalizovat nebo zobrazit odpovídající formulář či dialog.


Delphi


uses
  ..., System.Notification;

procedure TForm1.Button1Click(Sender: TObject);
var
  nt: TNotification;
begin
  // Vytvoření upozornění
  nt := TNotification.Create;
  nt.Name := 'Test';
  nt.Title := 'Testovací oznámení';
  nt.AlertBody := 'Operace byla úspěšně dokončena.';
  // Zobrazení upozornění
  nc.PresentNotification(nt);
end;

// Zpracování
procedure TForm1.ncReceiveLocalNotification(Sender: TObject;
  ANotification: TNotification);
begin
  ShowMessage('Upozornění přijato uživatelem');
end;


C++Builder


// Odeslání zprávy
void __fastcall TForm1::btnPoslatZpravuClick(TObject *Sender)
{
  TNotification *nc = NotificationCenter1->CreateNotification();
  nc->Name = "Test";
  nc->Title = "Testovací oznámení";
  nc->AlertBody = "Operace byla úspěšně dokončena.";
  NotificationCenter1->PresentNotification(nc);
}

// Zpracování
void __fastcall TForm1::NotificationCenter1ReceiveLocalNotification(TObject *Sender,
            TNotification *ANotification)
{
  ShowMessage("Upozornění přijato uživatelem");
}

Zobrazení oznámení (lišta, centrum akcí)


Pozor! Chování centra akcí lze do velké míry přizpůsobit. Pokud se upozornění z Vaší aplikace v "Centru akcí" nezobrazuje, zkontrolujte si, že je tato možnost v nastavení Windows 10 povolena.

Komponenta „Notification“ je dostupná nejen pro knihovnu VCL, ale rovněž pro FireMonkey. Možnosti práce s oznámeními se na různých platformách mírně liší. Například zvuková signalizace, použití visaček (Badges) nebo zobrazení upozornění v určený čas nemusí být podporováno na všech platformách.

Funkce dle platforem


K tomuto článku je k dispozici i videoturoriál a to na adrese: https://www.youtube.com/watch?v=5hfzo9bHP6E