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.
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.
V designeru lze i nové gesto otestovat, popř. program automaticky hlásí možné problémy s již existujícími gesty.
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.
procedure TForm1.FormGesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
case EventInfo.GestureID of
sgiLeft:
ShowMessage('Vlevo');
sgiRight:
ShowMessage('Vpravo');
end;
end;
EventInfo: TGestureEventInfo obsahuje všechny potřebné informace (hlavní je GestureID):
TGestureEventInfo = record
GestureID: TGestureID;
Location: TPoint;
Flags: TInteractiveGestureFlags;
Angle: Double;
InertiaVector: TSmallPoint;
case Integer of
0: (Distance: Integer);
1: (TapLocation: TSmallPoint);
end;
Kromě uvedených obsahuje TTouchManager i speciální podporu pro tablety atd.
TGestureListView
TGestureListView je následníkem TListView a zobrazuje název gesta spolu s jeho náhledem.
procedure TForm1.FormCreate(Sender: TObject);
begin
GestureListView1.AddGesture(sgiLeft);
GestureListView1.AddGesture(sgiLeftDown);
end;
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.
Dvakrát TTouchKeyboard