이미지 콤포넌트위에 마우스가 올라오면 다른 이미지로 바꾸로 내려가면 다시 원위치
시킬려고 하는데 잘 안되는군요.
답변내용을 찾아보니까 다음과 같은 답변이 있는데
-------------------------------------------------------------
마우스가 컨트롤 안에 들어오면 CM_MOUSEENTER 가 발생하고,
반대로 커서가 밖으로 나가면 CM_MOUSELEAVE가 발생한다.
컴포넌트의 메소드로 다음을 추가합니다.
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure TMyCompo.CMMouseEnter(var Message: TMessage);
begin
TForm(parent).Caption := '들어왔네!';
end;
procedure TMyCompo.CMMouseLeave(var Message: TMessage);
begin
TForm(parent).Caption := '나갔네!';
end;
----------------------------------------------------------
컴포넌트의 메소드에 추가하는 방법을 모르겠군요....
위의 procedure를 콤포넌트의 메소드에 추가하는 방법과 사용방법을 알려 주심
감사하겠습니다.
사용환경은 윈2000 + 델5 또는 윈98 + 델5 입니다.
음... 상속 받아서 추가 하는 방법이 가장 간단하고 편하지 않을 까 생각 합니다.
Form을 상속 받아서 새로운 컴퍼넌트를 만들어보세요~
메세지 핸들러 추가하는 방법은 여기 게시판에 보시거나, 아님 델파이 디렉토리 밑에서 VCL Source를 보신다면 그리 어렵지 않게 하실 수 있을 거라 봅니다.
그럼 수고~
김시준 wrote:
> 이미지 콤포넌트위에 마우스가 올라오면 다른 이미지로 바꾸로 내려가면 다시 원위치
> 시킬려고 하는데 잘 안되는군요.
>
> 답변내용을 찾아보니까 다음과 같은 답변이 있는데
> -------------------------------------------------------------
> 마우스가 컨트롤 안에 들어오면 CM_MOUSEENTER 가 발생하고,
> 반대로 커서가 밖으로 나가면 CM_MOUSELEAVE가 발생한다.
> 컴포넌트의 메소드로 다음을 추가합니다.
> procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
> procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
>
> procedure TMyCompo.CMMouseEnter(var Message: TMessage);
> begin
> TForm(parent).Caption := '들어왔네!';
> end;
>
> procedure TMyCompo.CMMouseLeave(var Message: TMessage);
> begin
> TForm(parent).Caption := '나갔네!';
> end;
> ----------------------------------------------------------
> 컴포넌트의 메소드에 추가하는 방법을 모르겠군요....
> 위의 procedure를 콤포넌트의 메소드에 추가하는 방법과 사용방법을 알려 주심
> 감사하겠습니다.
>
> 사용환경은 윈2000 + 델5 또는 윈98 + 델5 입니다.