编写一个用游戏杆操纵的程序,程序需要全屏,于是设置borderStyle=bsNone,结果发现游戏杆的事件处理不执行了。只有不设置borderStyle=bsNone就没问题,这两个之间根本没有任何关系,真是莫名其妙,大侠帮忙看看吧!谢谢了!TForm1 = class(TForm)
procedure Joy1ButtonDown(var msg: TMessage); message MM_JOY1BUTTONDOWN;
procedure Joy1Move(var msg: TMessage); message MM_JOY1MOVE;
……
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
joySetCapture(self.Handle, JOYSTICKID1, 100, true);
end;procedure TForm1.Joy1ButtonDown(var msg: TMessage);
begin
Memo1.Lines.Add('buttion clicked');
if (msg.WParam and JOY_BUTTON1) > 0 then
Memo1.Lines.Add('JOY_BUTTON1');
if (msg.WParam and JOY_BUTTON2) > 0 then
Memo1.Lines.Add('JOY_BUTTON2');
if (msg.WParam and JOY_BUTTON3) > 0 then
Memo1.Lines.Add('JOY_BUTTON3');
if (msg.WParam and JOY_BUTTON4) > 0 then
Memo1.Lines.Add('JOY_BUTTON4');
case msg.WParam of
JOY_BUTTON1: Memo1.Lines.Add('JOY_BUTTON1');
JOY_BUTTON2: Memo1.Lines.Add('JOY_BUTTON2');
JOY_BUTTON3: Memo1.Lines.Add('JOY_BUTTON3');
JOY_BUTTON4: Memo1.Lines.Add('JOY_BUTTON4');
end;end;procedure TForm1.Joy1Move(var msg: TMessage);
begin
LabelX.Caption := IntToStr(msg.LParamLo);
LabelY.Caption := IntToStr(msg.LParamHi);
end;
procedure Joy1ButtonDown(var msg: TMessage); message MM_JOY1BUTTONDOWN;
procedure Joy1Move(var msg: TMessage); message MM_JOY1MOVE;
……
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
joySetCapture(self.Handle, JOYSTICKID1, 100, true);
end;procedure TForm1.Joy1ButtonDown(var msg: TMessage);
begin
Memo1.Lines.Add('buttion clicked');
if (msg.WParam and JOY_BUTTON1) > 0 then
Memo1.Lines.Add('JOY_BUTTON1');
if (msg.WParam and JOY_BUTTON2) > 0 then
Memo1.Lines.Add('JOY_BUTTON2');
if (msg.WParam and JOY_BUTTON3) > 0 then
Memo1.Lines.Add('JOY_BUTTON3');
if (msg.WParam and JOY_BUTTON4) > 0 then
Memo1.Lines.Add('JOY_BUTTON4');
case msg.WParam of
JOY_BUTTON1: Memo1.Lines.Add('JOY_BUTTON1');
JOY_BUTTON2: Memo1.Lines.Add('JOY_BUTTON2');
JOY_BUTTON3: Memo1.Lines.Add('JOY_BUTTON3');
JOY_BUTTON4: Memo1.Lines.Add('JOY_BUTTON4');
end;end;procedure TForm1.Joy1Move(var msg: TMessage);
begin
LabelX.Caption := IntToStr(msg.LParamLo);
LabelY.Caption := IntToStr(msg.LParamHi);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货