Delphi 2010 a podpora pro gestures

vložil Radek Červinka 23. prosince 2009 22:08

Nové Windows 7 obsahují podporu pro gestures (gesta - rozeznávání pohybu myši nebo dotyku na touch screenu). Jedná se o velmi užitečné rozšíření zvláště pro multitouch obrazovky popř. kiosky, i když např. taková Opera používá gesta i pro myš.

Ale jelikož je oficiálně podpora od MS jen pro Windows 7, byla autory Delphi přidána do nové verze Delphi podpora i pro XP a Vista (a 2000 asi taky). Navíc byla přidána virtuální klávesnice.

Gesture Manager

Základem je TGestureManager, kde jsou definována jednotlivá gesta, přičemž v základu je jich již pěkná řádka a v editoru gest se dají doplnit další. Gesta se dají ukládat do souboru.

Gesture Designer

V designeru lze i nové gesto otestovat, popř. program automaticky hlásí možné problémy s již existujícími gesty.

Gesta

Standardní gesta

Nyní když máme gesta nadefinované (nebo použijeme některé ze standardních) je čas je využít.

Implementačně je to provedeno tak, že v TControl je nová property Touch: TTouchManager (který má property TGestureManager pro případ nově definovaných gest), takže každý control má možnost využívat těchto gest. V praxi pak jen obsloužíte OnGesture event handler.

    1procedure TForm1.FormGesture(Sender: TObject;
    2  const EventInfo: TGestureEventInfo; var Handled: Boolean);
    3begin
    4  case EventInfo.GestureID of
    5   sgiLeft:
    6     ShowMessage('Vlevo');
    7   sgiRight:
    8     ShowMessage('Vpravo');
    9  end;
   10end;

EventInfo: TGestureEventInfo obsahuje všechny potřebné informace (hlavní je GestureID):

    1TGestureEventInfo = record
    2    GestureID: TGestureID;
    3    Location: TPoint;
    4    Flags: TInteractiveGestureFlags;
    5    Angle: Double;
    6    InertiaVector: TSmallPoint;
    7    case Integer of
    8      0: (Distance: Integer);
    9      1: (TapLocation: TSmallPoint);
   10  end;

Kromě uvedených obsahuje TTouchManager i speciální podporu pro tablety atd.

Gesta a tablet

TGestureListView

TGestureListView je následníkem TListView a zobrazuje název gesta spolu s jeho náhledem.

TGestureListView

    1procedure TForm1.FormCreate(Sender: TObject);
    2begin
    3  GestureListView1.AddGesture(sgiLeft);
    4  GestureListView1.AddGesture(sgiLeftDown);
    5end;

Další komponenty ohledně gest

TGesturePreview zobrazuje náhled gesta a TGestureRecord je panel, který umožňuje záznam gesta.

Nová je i virtuální klávesnice TTouchKeyboard a ta může být ve dvou módech: klasická nebo jako numlock. Na klávesnici se dají specifikovat barvy pro kreslení gradientů. Klikání na klávesnici je ekvivalentní stisku kláves.

Klávesnice

Dvakrát TTouchKeyboard


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy: , , ,

Recenze

Komentování ukončeno

Naše nabídka

Partial English version.

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 nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

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.

Anketa

Poslední komentáře

Comment RSS