Q&A

  • TMenuItem Click시에 마우스 버튼 종류 알아내기
안녕하세요. 홍문택이라고 합니다.



제가 TMenuItem을 선택했을때(OnClick 이벤트시) 마우스의 왼쪽 버튼,

오른쪽 버튼에 따라 다른 일을 수행하려고 하는데 어느 버튼으로

TMenuItem을 선택했는지 알수 있는 방법을 모르겠습니다.



다룬 Component들운 OnMouseDown, OnMouseUp 이벤트 함수의 파라미터로

Button의 종류가 넘어와서 그 종류를 알 수 있는데, TMenuItem에는 위와

같은 이벤트 종류가 없고 OnClick 이벤트가 있는데, OnClick 함수는 Button

정보를 파라미터로 넘기지 않아서 Button 종류를 잘 모르겠습니다.



혹시 알고 계신분 계시면 답변 바랍니다.

1  COMMENTS
  • Profile
    바다를향해 2001.02.10 07:30
    안녕하세요.......

    제가 예전에 함 썼던 방법인데요....

    TMainMenu에서 상속 받아서 새로운 메뉴컴포넌트를 만드세요...

    물론 TMenuItem에서 상속 받아서 새로운 메뉴아이템 클래스를 만들고

    그담에 메인메뉴에서 상속 받아 만든 새로운 메뉴컴포넌트의 아이템 프로퍼티의

    타입을 새로 만든 메뉴아이템 클래스 타입으로 해주면 되겠져.....

    그 담에 새로 만든 컴포넌트를 델파이에 설치하여 그 메뉴를 사용 하면 되져....^^

    이벤트 추가 해주는것은 매우 쉬워여......간단히 예제를 아래 첨부해 드리져...

    구럼 즐코 하세요...



    예제)



    type

    TBadaMenuItem = class(TMenuItem)

    private

    { Private declarations }

    FOnMouseDown: TNotifyEvent;

    FOnMouseUp: TNotifyEvent;

    protected

    { Protected declarations }

    public

    { Public declarations }

    procedure MouseDown(var Msg: TMessage); message CM_MOUSEDOWN;

    procedure MouseUp(var Msg: TMessage); message CM_MOUSEUP;

    published

    { Published declarations }

    property OnMouseDown: TNotifyEvent read FOnMouseDown Write FOnMouseDown;

    property OnMouseUp: TNotifyEvent read FOnMouseUp Write FOnMouseUp;

    end;



    procedure Register;



    implementation



    procedure TKwonImage.MouseDown(var Msg: TMessage);

    begin

    if Assigned(FOnMouseDown) then FOnMouseDown(Self);

    end;



    procedure TKwonImage.MouseUp(var Msg: TMessage);

    begin

    if Assigned(FOnMouseUp) then FOnMouseUp(Self);

    end;



    procedure Register;

    begin

    RegisterComponents('Samples', [TBadaMenuItem]);

    end;





    홍문택 wrote:

    > 안녕하세요. 홍문택이라고 합니다.

    >

    > 제가 TMenuItem을 선택했을때(OnClick 이벤트시) 마우스의 왼쪽 버튼,

    > 오른쪽 버튼에 따라 다른 일을 수행하려고 하는데 어느 버튼으로

    > TMenuItem을 선택했는지 알수 있는 방법을 모르겠습니다.

    >

    > 다룬 Component들운 OnMouseDown, OnMouseUp 이벤트 함수의 파라미터로

    > Button의 종류가 넘어와서 그 종류를 알 수 있는데, TMenuItem에는 위와

    > 같은 이벤트 종류가 없고 OnClick 이벤트가 있는데, OnClick 함수는 Button

    > 정보를 파라미터로 넘기지 않아서 Button 종류를 잘 모르겠습니다.

    >

    > 혹시 알고 계신분 계시면 답변 바랍니다.