Umíme to s Delphi: 74. díl – tray ikona, instalace a používání

V předchozích dílech seriálu jsme společně vytvořili komponentu TrayIkona, která slouží k zobrazování ikony aplikace ve stavové části hlavního panelu Windows. Dnes tuto komponentu nainstalujeme do palety komponent a použijeme v ukázkové aplikaci.
Nyní si ukážeme, jakým způsobem instalovat a používat nově vytvořenou komponentu TTrayIcon. Přestože jsme se s instalací komponent již setkali (např. ve 44. dílu seriálu), celý postup si krok za krokem zopakujeme.

Zdůrazněme, že pro správné dokončení celých manévrů je nutné, aby zdrojový kód komponenty obsahoval proceduru Register; pokud by ve zdrojovém kódu nebyla, žádné chybové hlášení by nevzniklo, avšak komponenta by nebyla nainstalována do palety.

Jak instalovat a používat komponentu

1. Uložte zdrojový kód (jméno jednotky musí být bude stejné jako jméno souboru).

2. Z hlavní nabídky zvolte Component – Install Component. Otevře se dialog, v němž se nejprve přepněte do pravé záložky (Into new package), a pak vyplňte třetí a čtvrtou řádku, viz obrázek:

Klepněte pro větší obrázek

3. Klepněte na OK. Otevře se potvrzovací dialog, v němž zvolte kladnou odpověď:

Klepněte pro větší obrázek

4. Otevře se okno s popisem nového vytvořeného balíku. Klepněte na Compile:

Klepněte pro větší obrázek

5. Balík je zkompilován. Poslední akcí bude klepnutí na tlačítko Install (v témže okně). Měla by se objevit informace o úspěšné instalaci balíku.

Když si nyní prohlédnete paletu komponent, měli byste kdesi objevit záložku nazvanou Ruzne (jak jsme stanovili kdysi před třemi týdny). Uvnitř této záložky se skrývá výsledek našeho snažení, totiž komponenta TrayIkona:

Klepněte pro větší obrázek

Komponenta by měla být úspěšně nainstalována. Vytvořme společně aplikaci, na níž si vyzkoušíme její funkčnost.

Aplikace používající komponentu TrayIkona

Vytvoříme velmi jednoduchou aplikaci. Na hlavní formulář (Form1) umístíme komponentu TrayIkona, komponentu PopupMenu (PopupMenu1) a jedno tlačítko (Button1):

Klepněte pro větší obrázek

Nastavíme několik málo vlastností komponenty TrayIkona, viz následující tabulka:

Vlastnost Hodnota
HideTask True
Hint Ahoj, tohle je naše překrásná aplikace
IconVisible Zkuste si nastavit na True: změna se projeví i v návrhové fázi a ve stavové oblasti se ihned zobrazí příslušná ikona. Hodnotu nakonec ponechte třeba na False.
PopupMenu PopupMenu1

Podívejme se podrobněji na nastavování vlastnosti Icon. Přestože jsme v průběhu tvorby komponenty neprogramovali žádné dialogové okno, díky mechanismu předdefinovaných editorů komponent můžeme ikonu vybírat poměrně komfortním způsobem, viz následující obrázek:

Klepněte pro větší obrázek

Všimněte si, že v při programování komponenty jsme sice řekli, že po klepnutí pravým tlačítkem na ikonu se má zobrazit rozbalovací nabídka, klepnutí levým tlačítkem jsme však pouze „svázali“ s obsluhou události OnClick. Pokud tedy chceme, aby naše ikona reagovala na klepnutí levým tlačítkem myši, je nutné obsloužit událost OnClick komponenty TrayIkona:

procedure TForm1.TrayIkona1Click(Sender: TObject);
begin
  Form1.Show;
end;

Kromě toho ošetříme událost OnClick tlačítka Button1:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Hide;
end;

Ještě před spuštěním aplikace vytvoříme 2-3 položky rozbalovací nabídky PopupMenu1 (vcelku nezáleží na jejich obsahu a významu, jedná se pouze o demonstraci).

Nyní již můžeme aplikaci přeložit a spustit. Asi sami tušíte, co by měla dělat: po svém vytvoření zobrazí ikonu ve stavové části hlavního panelu. Ponecháte-li kurzor myši chvíli nad touto ikonou, bude zobrazena plovoucí nápověda. Skryjete-li aplikaci stisknutím tlačítka Skryj, nebude kromě malé ikonky vpravo ve stavové části hlavního panelu zobrazeno vůbec nic. Klepnutím na ikonku lze takto skrytou aplikaci opět obnovit a zobrazit.

Klepněte pro větší obrázek

Uvedeme si kompletní zdrojový kód aplikace. Je z něj patrné, že komponentu TrayIkona lze používat opravdu mimořádně snadno; kromě této komponenty není nutné přidávat do aplikace zhola nic a veškeré parametry komponenty je možné pohodlně nastavovat pomocí vlastností a jejich editorů. Komponentu tak lze přidat skutečně do libovolné aplikace a dát jí tak profesionálnější nádech. Rád bych ovšem zopakoval varování z úvodu povídání o tray ikonách: neumísťujte od nynějška tray ikonu do všech svých aplikací, přestože to umíte; používejte ji jen tam, kde to charakter aplikace vyžaduje.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, TrayIkona;

type
  TForm1 = class(TForm)
    TrayIkona1: TTrayIkona;
    Button1: TButton;
    PopupMenu1: TPopupMenu;
    Polozka21: TMenuItem;
    Polozka31: TMenuItem;
    procedure TrayIkona1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TrayIkona1Click(Sender: TObject);
begin
  Form1.Show;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TrayIkona1.IconVisible := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Hide;
end;

end.

Na závěr

Dnešním článkem jsme konečně uzavřeli kapitolu „tvorba ikon ve stavové oblasti hlavního panelu“. Věřím, že jste vytrvali až do samého závěru i přesto, že se zřejmě jednalo o nejobtížnější problematiku, která se dosud v seriálu objevila. Slibuji, že za týden si dáme pro změnu něco jednoduššího, u čeho si všichni trochu odpočineme.

Zvolili jsme poměrně komplexní řešení tvorby nové komponenty. Opakuji, že obohatit aplikaci o tray ikonu je možné i bez psaní nových komponent, stačí vzít určité fragmenty kódu a vložit je přímo do zdrojového souboru aplikace. Tento způsob (předvedený ve 44. dílu seriálu Tipy a triky v Delphi) je jistě jednodušší a v mnoha situacích se vyplatí. Vytváření nové komponenty má smysl pouze v případě, že chcete tray ikonu používat opakovaně a požadujete komplexnější přístup a možnosti. Věřím, že alespoň rámcově rozumíte principu tray ikon a jejich používání a že v případě nutnosti dokážete z kódu komponenty „extrahovat“ potřebné části a využít je tam, kde to zrovna potřebujete. Nejpodstatnější na celém problému je pochopit práci se zprávami, které jsme se věnovali v dílech 64 – 66.

Poslední poznámka se bude týkat faktu, že pokud potřebujete pouze používat (nikoliv jim rozumět) komponenty zapouzdřující práci s tray ikonami, můžete se porozhlédnout po internetu, kde jich jistě naleznete veliké množství.

Diskuze (2) Další článek: Acer TravelMate 230 - nové notebooky pod 40 000 Kč

Témata článku: Software, Windows, Programování, Dokončené dílo, Hlavní panel, Levý panel, Komponenta, Používání, Fragment, Rozbalovací nabídka, Díl, Ikona, Instalace, Celý manévr, Icon


Určitě si přečtěte

Šmírování kamerami Googlu: Koukněte se, co zachytily na Street View

Šmírování kamerami Googlu: Koukněte se, co zachytily na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 44

Vyzkoušeli jsme špičkovou meteostanici. Má Wi-Fi a na webu kreslí podrobné grafy

Vyzkoušeli jsme špičkovou meteostanici. Má Wi-Fi a na webu kreslí podrobné grafy

** Vyzkoušeli jsme špičkovou poloprofesionální meteostanici ** Má skvělou venkovní sondu a Wi-Fi ** Data posílá na Weather Underground

Jakub Čížek | 20

Mobil letí z výšky na zem a nic se mu nestane! Podívejte se, jak ho ochrání unikátní aktivní pouzdro

Mobil letí z výšky na zem a nic se mu nestane! Podívejte se, jak ho ochrání unikátní aktivní pouzdro

** Toto pouzdro zaručeně ochrání mobil při pádu ** Německý inženýr na něm pracoval 4 roky ** V letu vytáhne pružnou ochrannou konstrukci

Karel Kilián | 26

17 tipů, jak se nenechat hacknout

17 tipů, jak se nenechat hacknout

** Přehled nejdůležitějších věcí, které je nutné dodržovat pro digitální bezpečnosti ** Hlavní je používat mozek ** Chraňte soukromé informace

Karel Javůrek | 25


Aktuální číslo časopisu Computer

Jak mobily určují svoji polohu?

Velký test notebooků pro studenty

Nejlepší reproduktory na párty

Služby a aplikace pro výuku angličtiny