Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Popupmenü schließen (https://www.delphipraxis.net/39871-popupmenue-schliessen.html)

daniel8520 8. Feb 2005 14:47


Popupmenü schließen
 
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?

semo 19. Sep 2007 17:29

Re: Popupmenü schließen
 
keine antwort.
überlege da nämlich auch gerade :-)

LLKK 19. Sep 2007 19:05

Re: Popupmenü schließen
 
Zitat:

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;

semo 19. Sep 2007 19:46

Re: Popupmenü schließen
 
bin auch gerade über die klasse tpopuplist in der unit menus gestolpert.

danke dir.

daniel8520 19. Sep 2007 20:45

Re: Popupmenü schließen
 
Ok Leute, danke. Aber der Thread war bereits vonn 2005! Nun haben wir bereits 2007.
Trotzdem danke für eure Hiife. Auch wenn ich schon gar nicht mehr weiß, worum es ging ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz