关于Flash与Delphi的问题,如果通过拖动FLash控件达到拖动窗体的效果。 (50分)

D

dogood

Unregistered / Unconfirmed
GUEST, unregistred user!
在设计窗口的时候,form为无边窗口,form1.borderstyle:=bsnone,界面上除了flash什么也没有。
这样的话,窗口拖动就是个问题,应该怎么做呢?
 
OnStarDrag事件不能控制窗体啊!
如果flash不是alClient,那就
private
procedure WMNChitttest(var msg:Twmnchittest);message wm_nchittest;

procedure Tform1.WMNChitttest(var msg:TWMNChittest);
begin
inherited;
if (htclient=msg.result) then
msg.Result:=htCaption;
end;
我如果是的话,我想自己设计一个标题栏,可以放个panel,然后alTop
然后给panel写上事件
procedure TForm1.pnl1MouseDown(Sender: TObject
Button: TMouseButton;
Shift: TShiftState
X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, 61458, 0);
end;

 
多谢哥们,能解释一下上面的代码么?
 
想请冲问一下:
SendMessage(Handle, WM_SYSCOMMAND, X, 0);其中X的值跟它对应的功能关系,在哪里能查到的?
 
在你的flash的MouseDown里加入
ReleaseCapture;
SendMessage(Form1.Handle,wm_SysCommand,$f012,0);

这个是移动Form1
如果是移动Flash控件就要换成
ReleaseCapture;
SendMessage(Flash.Handle,wm_SysCommand,$f012,0);
 
在application中拦截mousedown消息,然后
ReleaseCapture;
SendMessage(Flash.Handle,WM_SYSCOMMAND,$f012,0);

?????????
 
要移动那个控件就在那个控件的MouseDown事件中加入
ReleaseCapture;
SendMessage(Form1.Handle,wm_SysCommand,$f012,0);


(Form1.Handle为控件的Handle,如上是移动FORM1,
例,移动edit1
MouseDown事件中

ReleaseCapture;
SendMessage(edit1.Handle,wm_SysCommand,$f012,0);
这样还不明白我就没法了

 
上面的那些代码还是可以看懂的,很感激!

问题是:flash控件没有mousedown事件[?]
 
拦截鼠标消息就行了
 
如何在application中拦截mousedown消息?具体拦截和拖动的代码应该怎么弄呢?偶是菜鸟,来向大家学习了(不要打我)。
 
处理flash控件的OnMouseDown事件
begin
ReleaseCapture;
Self.Perform(WM_SYSCOMMAND, $f012, 0);
end;
 
首先申明我很菜。问题还没有解决,现在需要申明的是:Flash控件本身是没有什么MouseDown事件的。如何弄,源码啊。。。。。。。。。
 
我不想灌水,特别是刀剑如梦兄在这边.但忍不住要说,没有事件,但是肯定有消息的!
如果需要非常详细的代码,可以联系我,不好在这里贴.怕占地方.[:)]
 
奇怪!早上看,2楼还是刀剑如梦,怎么现在变成江南大米了?难道我眼花了? [:(]

dogood:你的qq找不到你,请到 http://liumazi.efile.com.cn/ 下载td.rar ,你看行不行?有问题我们再讨论!
 
多谢啊,问题解决了。
 
哈,多谢啊。开始发分了。
 
那快发啊,怎么不发呢?[:)]
你一定要选择‘分配积分’然后在每个人的后面添上想给的分数,
注意总和一定要跟你公布的分数相同 ,就可以了。快啊! [:)]
 
多谢麻子兄啊,呵呵,你的代码很好用。

结贴了!
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部