Q&A

  • MouseOver 그리고 MouseOut 이벤트 없나여??
안녕하세요
이미지에 Mouse를 갖다댔을 때 이벤트를 일으키고 또 이미지에 Mouse가 범위를 벗어났을 때 이벤트를 갖고 싶거든요...

하려는 짓거리는 Image1에 이미지를 갖다댔을 때 다른 Image나 Panel의 색깔을 바꾸려는데... 잘 안돼요

참고로 MouseMove이벤트 때 X축 Y축 값을 가지고 체크를 했는데...
잘 안돼서리...

꼭 좀 부탁드립니다.
3  COMMENTS
  • Profile
    홍성락 2002.02.26 22:40
    ////////////////////////////////////////////////////////
    함수원형입니다
    procedure WndProc(var Message: TMessage); override;
    함수코딩은
    Message.LParam에는 컴포넌트 포인트이구요
    Message.Msg에는 VCL control message입니다
    procedure TForm1.WndProc(var Message: TMessage);
    begin
       if Message.LParam = Longint(Panel1) then begin
          if (Message.Msg = CM_MOUSELEAVE) then begin
            Panel1.Caption := '마우스가 떠날때';
            Panel1.Color :=  clLime;
          end;
          if (Message.Msg = CM_MOUSEENTER) then begin
            Panel1.Caption := '마우스가 들어올때';
            Panel1.Color :=  clRed;
          end;
       end;
       inherited WndProc(Message);
    end;
  • Profile
    husky_kim 2002.02.27 00:18
    답변 감사합니다.
    그런데 에러가 나네요...
    win32 API Function 에러라고 나는데... 솔직히 잘 모르겠습니다..

    글구 이왕 가르침을 주시는 김에 WndProc에 대해서도 갈켜주세요...
    윈도우 메시지에 대해서 하나도 모르거든요... ㅠㅠ

    부탁드립니다..

    * 물론 함수선언 했지요...
  • Profile
    홍성락 2002.02.27 02:02

    inherited WndProc(Message);
    이 빠졌네요
    procedure TForm1.WndProc(var Message: TMessage);
    begin
       if Message.LParam = Longint(Panel1) then begin
          if (Message.Msg = CM_MOUSELEAVE) then begin
            Panel1.Caption := '마우스가 떠날때';
            Panel1.Color :=  clLime;
          end;
          if (Message.Msg = CM_MOUSEENTER) then begin
            Panel1.Caption := '마우스가 들어올때';
            Panel1.Color :=  clRed;
          end;
       end;
       inherited WndProc(Message);
    end;
    end;