Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[3743] [정보] 오른쪽 마우스 더블클릭 이벤트?
ryusw1 [ ] 1724 읽음    1998-07-24 18:33

안녕하세요? 유승우 입니다.

제가 하드 공간이 없는 관계로 (빌더를 잘 모르는 관계로..^^;) 빌더로는 구현 못했구요.
델파이로 제가 구현한게 있으니 그냥 참조 하세요.(빌더랑 거의 비슷할꺼에요)

델파이의 이벤트 만든것(RightClick, RightDoubleClick)이 있으니 참조 하세요.
(밑에 있음) - Component입니다. 버튼..

오브젝트 호출이 포인터로 이루어 지니 그점 유의 하셔서 짜시면 될꺼에요..

PS : Click, DoubleClick이 다른 메세지를 호출하는데, 왜 두 이 벤트를 같이 쓰면
     Click만 인식을 하는지 모르겠네요..아시는분 있으면..글좀 올려 주세요.

unit EvButton;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TEvButton = class(TButton)
  private
    { Private declarations }
    FOnRightClick : TNotifyEvent;
    FOnDBRightClick : TNotifyEvent;
    Procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN;
    Procedure WMRButtonDblClk(var Message: TWMRButtonDblClk); message WM_RBUTTONDBLCLK;
  protected
    { Protected declarations }
    Procedure RightClick;
    Procedure DBRightClick;
  public
    { Public declarations }
  published
    { Published declarations }
    Property OnRightClick : TNotifyEvent Read FOnRightClick Write FOnRightClick;
    Property OnDBRightClick : TNotifyEvent Read FOnDBRightClick Write FOnDBRightClick;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TEvButton]);
end;

Procedure TEvButton.WMRButtonDown(var Message: TWMRButtonDown);
Begin
  inherited;
  RightClick;
End;

Procedure TEvButton.WMRButtonDblClk(var Message: TWMRButtonDblClk);
Begin
  inherited;
  DBRightClick;
End;

Procedure TEvButton.RightClick;
Begin
  If Assigned(FOnRightClick) then FOnRightClick(Self);
End;

Procedure TEvButton.DBRightClick;
Begin
  If Assigned(FOnDBRightClick) then FOnDBRightClick(Self);
End;

end.

그럼 이만..도움이 될지 모르겠네요.


+ -

관련 글 리스트
3743 [정보] 오른쪽 마우스 더블클릭 이벤트? ryusw1 1724 1998/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.