Komponenta TTaskBar pro VCL

vložil Radek Červinka 29. dubna 2014 22:54

Pokud máte Windows 7 nebo vyšší můžete využít novou komponentu pro VCL, která zapouzdřuje relativně nové API pro práci s taskbarem Windows.

Jak to může vypadat za běhu (program má nastaven v tomto případě černý skin):

TaskBar

Všimněte si prosím jednak tlačítek v náhledu, druhak overlay ikony (srdce v taskbaru nad ikonou Delphi), třeťak progress baru pod ikonou (červená barva, jelikož je ve stavu Paused).

Kromě toho můžete nastavovat výřez vašeho formuláře pro preview, hinty a další. Všechno je to jednoduše použitelné a intuitivní.

TaskBar

U tlačítek můžete specifikovat kromě ikony i další property

TaskBar

Tagy: ,

Novinky v Delphi

Komentáře

30.4.2014 2:10:59 #

TLama

API se kterým zmiňovaná komponenta spolupracuje vzniklo pro Windows 7, ne Vista. Jinak u taskbar progresu červená barva neznamená pauzu, ale chybu (TBPF_ERROR). Pauza (TBPF_PAUSED) má mít barvu žlutou (nebylo by od věci kdyby designéři více potlačili podkladovou barvu taskbaru). Jinak ale opravdu nechápu proč EMBT urputně propaguje obyčejný wrapper nad Windows API (jehož varianty byly už dávno k mání). Třebas nad TTaskDialog takový povyk nebyl...

TLama

30.4.2014 9:12:45 #

JaroB

To se musí ale pro Vista a XP vypínat, ne?
Ono to v XE6 žádnou automatiku nemá a pokud se program náhodou spustí na Windows nižších jak 7, tak to hlásí třeba "ITaskbarList3 interface is not supported on this OS version." Takže to vyžaduje buď nějaký dodatečný kód nebo on-fly create.

JaroB

30.4.2014 9:13:40 #

JaroB

Jo a zacyklí to aplikaci :(, zapomněl jsem dodat.

JaroB

30.4.2014 10:47:08 #

TLama

U těchto typů komponent je to složité. Kdyby totiž vývojář považoval např. ten progress bar za jediný způsob indikace probíhajícího procesu a uživatel měl na stroji verzi Windows Vista nebo nižší, pohledu na probíhající proces by si zkrátka neužil. Pak je otázkou jak to vývojáři (protože uživatele pro něj nepodstatné chyby nezajímají) sdělit.

Osobně bych dal komponentě read-only vlastnost např. Enabled a tu nastavil na False na nepodporovaných systémech. V případě runtime vytváření bych z konstruktoru vyhodil exception aby bylo jasné, že mají s právě vytvářenou komponentou na daném systému utrum.

Ostatně podobné opatrnosti je třeba dbát i v případě TTaskDialog na systémech starších Windows Vista (přiznám se že nevím, jak se chová na XP; nechce se mi to teď zkoušet ani studovat). Tak jako tak, to co popisuješ není úplně správné chování.

TLama

30.4.2014 15:43:10 #

czbird

V cem je to lepsi nez TdwTaskbarProgressIndicator ?
Diky.

czbird

30.4.2014 15:51:09 #

TLama

@czbird, minimálně v tom, že TTaskBar se dá vyhledat pomocí Google :)

TLama

30.4.2014 16:07:40 #

radekc

On asi myslí - http://code.google.com/p/winmir/source/browse/trunk/dw/

Nevím, třeba v tom že je v základní instalaci? Ale přece já vím, že existuje spousta alternativ.

radekc

30.4.2014 16:12:09 #

radekc

To je opravdu fajn, když jsem kdysi žádal aby jste mi někdo poslal linky na zajímavé komponenty které používáte - nepřišlo mi vůbec lautr nic.

radekc

30.4.2014 16:17:57 #

czbird

jo, to je ono
umi to i marquee, coz si u TTaskBaru nejsem jisty...
Jestli ho umi i TTaskBar, tak neni duvod neprejit :-)

czbird

1.5.2014 2:04:43 #

TLama

@czbird, stav Indeterminate bude ekvivalentem stavu TBPF_INDETERMINATE, takže s chutí do upgrade :)

@radekc, moc nechápu reakci z tvého posledního komentáře, nicméně pokud se jedná o poznámku k existujícím wrapperům pro sedmičkové taskbar API o nichž jsem naznačil že nějaký pátek existují, pak věz že na tyto stránky chodím opravdu ze (škodolibé) zvědavosti, ne kvůli informacím a pobídka ohledně zajímavých komponent mi v té záplavě informací zkrátka unikla :)

Co mě ale hlavně zaráží je, proč má výrobce zapotřebí tak markantně zviditelňovat "novou" komponentu pro celkem hojně využívanou funkcionalitu systému 4 roky po jeho vydání, kdy bylo od té doby uvolněno 7 verzí Delphi. V jejich kůži bych tuto komponentu zmínil jen letmo a tiše se červenal.

Jinak se omlouvám za to, že jsem zmínil chyby v příspěvku. Příště už to neudělám.

TLama

1.5.2014 8:03:34 #

geby

Ta DW komponenta ma tu vyhodu, ze jsem ji vesele pouzival uz na Delphi7, zatimco tu novou integrovanou komponentu si na starsich verzich neuzijete.

geby

1.5.2014 11:14:21 #

radekc

@TLama - to co se na těchto strankach objevuje je čistě moje rozhodnuti, NIKDO mi neurčuje co se tu má - nemá objevit a když mi někdo něco navrhne tak mám samozřejmě právo veta. Ano EMBT vyhovuje existence delphi.cz a mám různé výhody, ale to je tak všechno.

Ohledně TTaskBaru si myslím, že hodně lidí vůbec o tom API nevědělo, pro ty tato informace byla určena. Pravda, že jsem nehledal alternativy, v tom oceňuji příspěvek czbird a to že jsi mne opravil ohledně Vist je prima, protože jsem osobně Visty přeskočil, takže o nich mám chabou znalost.

Pokud by o DW komponentách (nebo jiných zajímavých komponentách) mi někdo napsal, s obrovskou radostí bych to uveřejnil. Nestalo se tak.

radekc

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců