在Delphi XE上,此代码对我不起作用:
http://delphi.about.com/cs/adptips2000/a/bltip0800_5.htm
procedure TForm1.FormDeactivate(Sender: TObject) ;
begin
ReleaseCapture;
end;
procedure TForm1.FormMouseMove
(Sender: TObject; Shift: TShiftState; X,Y: Integer) ;
begin
If GetCapture = 0 then
SetCapture(Form1.Handle) ;
if PtInRect(Rect(Form1.Left,
Form1.Top,
Form1.Left + Form1.Width,
Form1.Top + Form1.Height),
ClientToScreen(Point(x, y))) then
Form1.Caption := 'Mouse is over form' else
Form1.Caption := 'Mouse is outside of form';
end;
Run Code Online (Sandbox Code Playgroud)
没有错误 - 它只是没有效果.
请帮忙.
编辑1
事实证明问题不在于代码,即使鼠标FormMouseEnter和FormMouseLeave也不起作用,因为我将表单传递给我用这样的函数创建的单元:
程序Slide(Form:TForm; Show:Boolean);
我正在从这个过程中调用Show方法.我怎样才能克服这个问题?
谢谢.
编辑2
我不想使用我现在发布的功能.我想使用下面人们建议的内容(FormMouseEnter和FormMouseLeave),但它在我的情况下也不起作用.
| 归档时间: |
|
| 查看次数: |
2671 次 |
| 最近记录: |