Question

L'un des grands points de vente, j'ai vu quand je devais acheter delphi pour mon travail était la capacité de la tablette de support PC. Maintenant, le client de l'entreprise où je travaille veulent utiliser une tablette PC. J'ai essayé difficile de trouver des exemples de delphi avec tablette pc mais je ne trouve pas. Est-ce que quelqu'un a l'expérience avec elle? Tout type de tutoriels ou des exemples?

Je ne semble pas être en mesure d'apporter même un clavier virtuel quand un foyer de gain composant et cache quand il perd.

Était-ce utile?

La solution

Delphi 2010 a introduit un certain soutien tactile et le geste agréable à Delphes.

Pour obtenir plus d'informations à ce sujet, allez à EDN site et cherchez CodeRage 4 replays. Il y a une session intitulée " Les mains sur les gestes dans VCL " par Seppy Bloom. De plus en CodeRage 5 il y a une session intitulée " Capacités pour la Nouvelle-Gestes et projets en cours d'application " par Vesvolod Leonov.

Chapitre 6 de Marco Cantu de " Delphi 2010 Manuel " couvre également toucher et geste à Delphes.

Finalement, vous pouvez vérifier Chris Bensen de blog pour certains postes d'introduction et démo code source au sujet de toucher et geste de soutien à Delphes.

  

Je ne semble pas être en mesure d'apporter même   un clavier virtuel lorsqu'un composant   obtenir le focus et se cacher quand il perd   il.

Dans Delphi 2010 et les versions plus récentes une touche-enabled est déjà disponible. Pour le rendre visible ou le cacher lorsque le focus est changé, vous pouvez gérer CM_FOCUSCHANGED VCL message et rendre le clavier visible lorsque le focus gagnant de contrôle est dérivé d'une certaine classe ou répond à certaines conditions particulières. Voici un exemple de code:

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    TouchKeyboard1: TTouchKeyboard;
  private
    procedure ActivateVirtualKeyboard(Control: TWinControl; Keyboard: TTouchKeyboard);
    procedure CmFocusChanged(var Msg: TCMFocusChanged); message CM_FOCUSCHANGED;
  public
    { Public declarations }
  end;

/// Implementation

procedure TForm1.ActivateVirtualKeyboard(Control: TWinControl; Keyboard: TTouchKeyboard);
var
  APoint : TPoint;
begin
  if Control is TCustomEdit then
  begin
    APoint := Control.ClientToScreen(Point(0,0));
    APoint := Keyboard.Parent.ScreenToClient(APoint);
    Keyboard.Left := APoint.X;
    Keyboard.Top := APoint.Y + (Control.Height);
    Keyboard.Visible := True;
  end
  else
    Keyboard.Visible := False;
end;

procedure TForm1.CmFocusChanged(var Msg: TCMFocusChanged);
begin
  ActivateVirtualKeyboard(Msg.Sender, TouchKeyboard1);
end;

Le code ci-dessus appels ActivateVirtualKeyboard chaque foyer de changement d'heure. Msg.Sender est le contrôle qui a reçu le focus. contrôles ActivateVirtualKeyboard si le contrôle est un descendant de TCustomEdit (composants tels que TEdit ou TMemo descendent de cette classe). Si le contrôle est dérivé de TCustomEdit, il place à droite du clavier virtuel sous le contrôle et rend le clavier visible; sinon, il cache le clavier.

Dans l'exemple de code que nous avons modifié, une note de service, et un bouton sur Form1. Le clavier doit être visible pour Edit1 et Memo1, et quand hid Button1 a le focus.

Le calcul de la position du clavier à l'écran est pas intelligent, et le clavier seront peut-être trop bas si la mise au point d'avoir de contrôle est très proche du bord inférieur de la forme. Quoi qu'il en soit, le positionnement d'un contrôle à l'écran est hors de la portée de votre question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top