请问 Delphi 与 Flash 问题种种? (20分)

  • 主题发起人 主题发起人 apple058
  • 开始时间 开始时间
可将Flash OCX 放入一个Panel中,再Send to back
别人可以改Flash文件的问题,可以试试使用资源文件。
如果要屏避Flash中的右键菜单,可以捕获RButtonDown消息,再not inherited
 
我想屏蔽Flash中的右键菜单,如何捕获RButtonDown消息?
 
我想问一下,
flash控件在delphi中为什么不能改变大小?
我已经设置了flash控件的对齐方式为client,但当
我改变窗口的大小是控件根本就没反应,
而且我动态的设置其width和height属性也不行,
它根本就不理我,
但我在vb和.net中都用得很好,
用webbrower控件播放flash文件也播放得很好,
可以自由得伸缩,就是在delphi中我老是伸缩有问题,
我想是delhpi和有些active控件兼容得不好的缘故吧。
我还有一个问题就是怎么获取一个flash文件的原始尺寸呢?——
谢谢
 
我也遇到了同样的问题 !
 
呵呵~~前些天刚碰到以上问题,幸好都解决了

一、屏蔽flash控件的右键菜单
方法1:拦截系统消息
在form上添加一个Application Events控件,然后在其OnMessage事件中输入一下代码:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message = WM_RBUTTONDOWN then
begin
//如果去掉下面这行就是屏蔽右键菜单,现在为自定义右键菜单
popupmenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
Handled := True;
end;
end;

方法2:拦截flash控件的右键消息,代码如下:
type
TMyFlash = class(TShockwaveFlash)
public
procedure TWMRBUTTONDOWN(var msg:TMsg); message WM_RBUTTONDOWN;
end;

procedure TMyFlash.TWMRBUTTONDOWN(var msg:TMsg);
var
P:Tpoint;
begin
if popupmenu<>nil then //加入自己的事件
begin
GetCursorPos(p); //获得当前鼠标位置
popupmenu.Popup(p.x,p.y); //弹出菜单
end;
end;

二、flash控件缩放时的问题
解决办法是先让其它控件获得焦点,然后再让flash控件获得焦点,下面是示例代码:
procedure TForm1.FormResize(Sender: TObject);
begin
if flash1.playing=true then
begin
panel1.SetFocus ;
flash1.SetFocus ;
end;
end;
 
还发现一个问题,有些事件好象不响应
 
To DeityFox:
  看来你研究Delphi中Flash的使用有些经验的,不知你用它是否做过播放器?
想请教一个问题是:当自制的Flash播放器与.swf文件关联后,在资源管理器中双击.swf
文件可使程序自动运行并进行播放,如何能在第二次双击时打开第二个文件?听说要用
到WM_COPYDATA,您会吗?请赐教!
 
不好意思 分数不多 不要见怪
 
请到这里看看,http://www.onlinedown.net/soft/20595.htm
功能基本上都有。
 
关于Flash不能缩放大小的问题?
  在窗口中放入一个button控件。然后,如:菜单中有个放大按钮。
  在放大按钮里写入以下代码:
Button.SetFocus;
ShockwaveFlash1.SetFocus;
注: 先设焦距在button上,然后在把焦距设制回来,Flash就会放大或缩小。
  button不能用隐藏属性。 可以把button放到flash控件的下方。
 
后退
顶部