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;