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í 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