读书人

amp;#215;amp;#215;amp;#215;amp;#215;触摸屏摸拟键

发布时间: 2012-02-10 21:27:41 作者: rapoo

××××触摸屏摸拟键盘输入,看看错在哪里××××
speendbutton的caption就是字母,点一下,通过caption向edit1里加一个字母,请问这段程序,错在哪里呀

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;

type
TForm1 = class(TForm)
edt1: TEdit;
btn1q: TSpeedButton;
btn1w: TSpeedButton;
btn1e: TSpeedButton;
procedure btnClick(Sender: TObject);
procedure enterClick(Sender: TObject);
procedure delClick(Sender: TObject);
procedure FormActivate(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses StrUtils;
{$R *.dfm}
procedure TForm1.btnClick(Sender: TObject);
begin
PostMessage(ActiveControl.Handle,WM_CHAR,ord((sender as tspeedbutton).Caption[1]),0);
edt1.text:=edt1.Text+(sender as tspeedbutton).Caption;
edt1.SelStart:=Length(edt1.Text);
end;

procedure TForm1.enterClick(Sender: TObject);
begin
postmessage(ActiveControl.Handle,wm_keydown,vk_return,0);
end;

procedure TForm1.delClick(Sender: TObject);
begin
postmessage(ActiveControl.handle,wm_keydown,VK_BACK,0);
end;


procedure TForm1.FormActivate(Sender: TObject);
begin
self.edt1.Focused;
end;

end.

[解决办法]
为什么要用PostMessage?

读书人网 >.NET

热点推荐