怎样移动FLASH控件达到移动窗体的效果? (100分)

L

laoli

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样移动FLASH控件达到移动窗体的效果?为什么FLASH控件里没有OnMouseDown事件?
 
如果有onmousedown事件就好办了
在其中写releaseCapture
form1.perform(WM_SYSCommand,SC_Move+1,0)
 
放一个application event, 在onMessage里面响应mouse事件。
 
to stlont
能给出具体的实现代码吗?
 
我用d5, application event是在addition页的倒数第二个控件
放一个在form上,点他就可以看到事件,在events里找onMessage
具体用法可以按F1查,传入的msg参数就是截到的消息。
 
procedure TForm1.FlashMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// if ssleft in shift then releasecapture;
form1.Perform (WM_NCLBUTTONDOWN ,htCaption,0);
//self.perform(WM_SYSCOMMAND,$F012,0);//这样也行
end;
 
procedure TForm3.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;
if Msg.message = WM_LBUTTONDOWN then //如果是左键???? 这里不行
self.perform(WM_SYSCOMMAND,$F012,0);

end
 
少了一个 end

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; ///////////少了这个
if Msg.message = WM_LBUTTONDOWN then
//如果是左键???? 这里不行
self.perform(WM_SYSCOMMAND,$F012,0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:=ApplicationEvents1Message;
end;
 
to jsxjd
不是出错,是其不了作用
右键没问题,左键就是不行
你试过没有?


 
这个方法试了,可以移动,却不能点击FLASH中的按钮,
 
to laohe
请给出相关的实现代码
谢谢
 
先定义事件:
procedure myMessage(var Msg: tagMSG;var Handled: Boolean);


procedure TForm1.myMessage(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message = WM_LBUTTONDOWN then
self.perform(WM_SYSCOMMAND,$F012,0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:=myMessage;
end;
 
to laohe
你是否调试过,这个方法我早就试过了
对其他控件可能行,但是flash控件是不行的
 
用FsCommand接口!
 
to 爱元元的哥哥
请给出相关的实现代码
谢谢
 
刚刚试了,jsxjd的方法非常好。即可以屏蔽Flash的右键菜单,又可以拖动窗体。可以用的。
不明白你的为什么不能够用。给jsxjd分
 
多人接受答案了。
 
顶部