利用快捷键控制flash的问题 ( 积分: 56 )

  • 主题发起人 主题发起人 logitech1229
  • 开始时间 开始时间
L

logitech1229

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体中写了onkeypress事件如下:
if key=#27 //就是esc键
then begin
shockwaveflash1.stop;
close;
end;
但是进入这个form后按esc键没有任何响应。这是为什么?
 
我在窗体中写了onkeypress事件如下:
if key=#27 //就是esc键
then begin
shockwaveflash1.stop;
close;
end;
但是进入这个form后按esc键没有任何响应。这是为什么?
 
Form的Keypreview属性改为True
 
是這樣的嗎?
我想用hook的方法解決的話該怎麽做?
請指教。
 
頂上去。
誰能提供些資料呀?謝謝
沒有頭緒
 
界面上放一个ActionList,设置HotKey就可以了
 
这样吗?
我试一下,谢谢
 
好像不行
1。form上的keypreview改了true,但是#27无效,用#13就可以
2。actionList里面没有唯独找到快捷键Esc。
[?][?][?]
 
1、http://www.delphibbs.com/delphibbs/dispq.asp?LID=1750063
标题是: 好玩的一个问题,不响应onkeyDown? (50分)
-------------------------------------转自网络
var
OldWndProc:Pointer

function NewWndProc(hWnd: hWnd
Msg: Cardinal
wParam: Cardinal
lParam: Cardinal): LongInt;
begin
Result:=0;
if Msg=WM_KEYDOWN then //在这里处理自己的消息
begin
Exit
//如果此消息不需要Flash处理,直接返回
end;

Result:=CallWindowProc(OldWindowProc,WindowHandle,TheMessage,ParamW,ParamL)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc:=Pointer(SetWindowLong(Flash.Handle,GWL_WNDPROC,LongInt(@NewWndProc)));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
SetWindowLong(Flash.Handle,GWL_WNDPROC,LongInt(OldWndProc));
end;

2、http://www.delphibbs.com/delphibbs/dispq.asp?LID=1482354
标题是: 全屏播放FLASH时,按ESC键为何关闭不了窗口?代码应该是对的啊! (20分)

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.
 
多些二位高手的幫助。特別是chenybin。
[:D][:D][:D][:D][:D]
 
后退
顶部