當我不得不爲我的工作購買delphi時,我看到的一大賣點是支持平板電腦的能力。現在我工作的公司的客戶想要使用平板電腦。我一直在努力尋找與平板電腦德爾福的例子,但我沒有找到任何。有人有經驗嗎?任何類型的教程或例子?Delphi 2010平板電腦支持
我似乎甚至不能在組件獲得焦點時帶上虛擬鍵盤,並在它丟失時隱藏它。
當我不得不爲我的工作購買delphi時,我看到的一大賣點是支持平板電腦的能力。現在我工作的公司的客戶想要使用平板電腦。我一直在努力尋找與平板電腦德爾福的例子,但我沒有找到任何。有人有經驗嗎?任何類型的教程或例子?Delphi 2010平板電腦支持
我似乎甚至不能在組件獲得焦點時帶上虛擬鍵盤,並在它丟失時隱藏它。
Delphi 2010爲Delphi引入了一些很好的觸摸和手勢支持。
要獲得更多信息,請訪問EDN網站並查找CodeRage 4回放。有一個會議題爲「手中的手勢在VCL」由塞皮布盧姆。同樣在CodeRage 5中,有一個標題爲「新應用程序和當前項目的手勢功能」的會議由Vesvolod Leonov提供。
第6章馬可坎圖的「德爾福2010手冊」也涵蓋了德爾福的觸摸和手勢。
最終,你可以檢查Chris Bensen's weblog一些關於在Delphi中觸摸和手勢支持的入門文章和演示源代碼。
我似乎不能夠,甚至帶來 虛擬鍵盤當組件 獲取焦點,並隱藏它,當它失去 它。
在Delphi 2010及更新版本中,已啓用觸控的keyboard component已可用。爲了在焦點改變時使其可見或隱藏,您可以處理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具有焦點時隱藏該鍵盤。
屏幕上鍵盤位置的計算並不那麼聰明,如果焦點控件非常接近表單的底部邊緣,則鍵盤可能會太低。無論如何,將控件放置在屏幕上不在你的問題的範圍之內。
和DR。鮑勃鏈接:http://www.drbob42.com/examines/examinB6.htm – 2010-12-09 00:37:10
搜索`touch`和`gesture`,這些是支持平板電腦編程的基本功能。 – 2010-11-29 12:24:05