Thema: Delphi Popupmenü schließen

Einzelnen Beitrag anzeigen

LLKK
(Gast)

n/a Beiträge
 
#3

Re: Popupmenü schließen

  Alt 19. Sep 2007, 19:05
Zitat von daniel8520:
Hallo Leute,

ich hab ein kleines Problem:
Und zwar möchte ich ein Popupmenü solange anzeigen, bis der Mausbutton wieder von einem Button gehoben wird. Kein Problem: Im OnMouseDown des Buttons, dass Popup aufpoppen lassen.
Und nun das Problem:
Ich hab keine Funktion gefunden, mit der man ein Popup schließen kann, denn das wollte ich nämlich im OnMouseUp Ereigniss machen.

Kann mir jemand helfen?
Hallo Daniel8520

Habe mal das hier im Netz gefunden.
Vielleicht hilft es Dir.

Delphi-Quellcode:

unit ExPopupList;

interface

uses Controls;

const
  CM_MENUCLOSED = CM_BASE - 1;
  CM_ENTERMENULOOP = CM_BASE - 2;
  CM_EXITMENULOOP = CM_BASE - 3;

implementation

uses Messages, Forms, Menus;

Type
  TExPopupList = class( TPopupList )
  protected
    procedure WndProc(var Message: TMessage); override;
  end;

procedure TExPopupList.WndProc(var Message: TMessage);
  Procedure Send( msg: Integer );
  Begin
    If Assigned( Screen.Activeform ) Then
      Screen.ActiveForm.Perform( msg, Message.wparam,
Message.lparam );
  End;
begin
  Case message.Msg Of
    WM_ENTERMENULOOP: Send( CM_ENTERMENULOOP );
    WM_EXITMENULOOP : Send( CM_EXITMENULOOP );
    WM_MENUSELECT :
      With TWMMenuSelect( Message ) Do
        If (Menuflag = $FFFF) and (Menu = 0) Then
          Send( CM_MENUCLOSED );
  End;
  inherited;
end;

Initialization
  PopupList.Free;
  PopupList:= TExPopupList.Create;
  Mit Zitat antworten Zitat