unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, pngimage, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
private
{ Private declarations }
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CMMouseEnter(var Message: TMessage);
Begin
Image1.Hide;
Image2.Show;
inherited;
End;
procedure TForm1.CMMouseLeave(var Message: TMessage);
Begin
Image1.Show;
Image2.Hide;
inherited;
End;
end.
이렇게 하면 된다고 해서 해봤는데
폼에서 마우스가 떠날때 CMMouseLeave이벤트가 일어나지 않고
다른 창이 제가 만든 폼을 가릴때 CMMouseLeave이벤트가 발생합니다.
어느부분이 잘못된건가요?
자세히 보니 CMMouseLeave는 마우스 커서가 창의 테두리를 지날때 이벤트가 일어나던데
혹시 Form.Style이 bsNone이라 테두리가 없어서 그런걸까요?
Form.Style을 bsSingle로 해도 문제는 있습니다.
마우스가 창의 테두리를 지날때 아주 빨리 지나가 버리면 이벤트가 발생하지 않거든요.
이거 해결할 방법 아시는 분 좀 도와주세요.
|