全屏播放FLASH时,按ESC键为何关闭不了窗口?代码应该是对的啊!(20分)

  • 主题发起人 主题发起人 eryu
  • 开始时间 开始时间
E

eryu

Unregistered / Unconfirmed
GUEST, unregistred user!
一个正在播放FLASH动画的全屏窗口,为何按下ESC后不能关闭窗口,没任何反应!!!
以下是该部分代码:
procedure TFullScreenForm.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Close;
end;
怎么回事啊?
 
TFullScreenForm 的keypreview 为 true
 
已经设成TRUE了,可还是不行啊,是不是别的属性设错了?
麻烦大家帮帮忙,到底怎么回事?
急!
 
flash 已经把按键消息给截取了,不会触发Form的onKeyDown事件,我是用LMD控件包中的
快捷件控件处理的
 
to gzfirst,
具体应该怎么做,请你告诉我!
LMD是什么东西,怎么用的?!!
谢谢!!
 
我就是楼主eryu,那个帐号没分了,只好换一个,请快告诉我啊。
 
LMD是一个控件包,很多地方都有得下载。那面包含一个控件是定义快捷键的处理,
处理按下某个快捷键如(F1)的动作
 
非要用那个吗?没有直接的简单点的方法吗?
在哪里下载LMD?
 
好像用了一些控件后, Form的onKeyDown就无法触发了,我之前也想不到好的办法,所以
只好用LDM控件包了。在http://www.51delphi.com有得下载
 
想要简单点的方法,用编程实现?
 
暂时想不到好的方法,找到了别忘了告诉我:)
 
在 Application.OnMessage 中处理
 
jsxjd:
不明白,请给出具体代码,谢谢你了。
 
换个键吧
if Key = VK_delete then
Close;
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, ShockwaveFlashObjects_TLB;
type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure MyOnMessage(var MSG:TMSG;var Handle:Boolean);
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.MyOnMessage(var MSG: TMSG;
var Handle: Boolean);
begin
if ((msg.message=WM_KEYUP) or
(msg.message=WM_KEYDOWN))
and (msg.wParam=VK_Escape) then
begin
handle:=true;
close;
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:=MyOnMessage;
end;

end.
 
接受答案了.
 
后退
顶部