Delphi 2010平板电脑支持
当我不得不为我的工作购买delphi时,我看到的一个重要卖点就是支持平板电脑的能力.现在,我工作的公司的客户想要使用平板电脑.我一直在努力寻找与平板电脑的delphi的例子,但我没有找到任何.有人有经验吗?任何类型的教程或示例?
当组件获得焦点时,我似乎甚至无法携带虚拟键盘,并且当它丢失时隐藏它. 解决方法
Delphi 2010为Delphi引入了一些不错的触摸和手势支持.
要获得更多信息,请访问EDN网站并查找CodeRage 4重播. Seppy Bloom有一个名为“VCL手势”的会议.同样在CodeRage 5中,Vesvolod Leonov还有一个名为“新应用和当前项目的手势功能”的会议. Marco Cantu的“Delphi 2010手册”第6章还介绍了Delphi中的触摸和手势. 最后,您可以查看Chris Bensen’s weblog以获取有关Delphi中触摸和手势支持的一些介绍性帖子和演示源代码.
在Delphi 2010及更新版本中,已启用支持触控的keyboard component.要在焦点更改时使其可见或隐藏,您可以处理CM_FOCUSCHANGED VCL消息,并在控件获得焦点来自某个类或满足某些特殊条件时使键盘可见.这是一个示例代码: 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; 每次更改焦点时,上面的代码都会调用ActivateVirtualKeyboard. Msg.Sender是获得关注的控件. ActivateVirtualKeyboard检查控件是否是TCustomEdit后代(TEdit或TMemo等组件来自此类).如果控件是从TCustomEdit派生的,那么它会将虚拟键盘放在控件下方,并使键盘可见;否则,它会隐藏键盘. 在示例代码中,我们在Form1上有一个编辑,一个备忘录和一个按钮.对于Edit1和Memo1,键盘应该是可见的,当Button1具有焦点时,键盘应该隐藏. 屏幕上键盘位置的计算并不那么聪明,如果具有焦点的控件非常接近表单的下边缘,键盘可能会太低.无论如何,在屏幕上定位控件超出了您的问题的范围. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |