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/)
-   -   PopupMenu offen lassen (https://www.delphipraxis.net/160003-popupmenu-offen-lassen.html)

stahli 22. Apr 2011 13:28


PopupMenu offen lassen
 
Ich nutze ein PopupMenu mit zwei Items (CheckBox-Modus).
Wenn ein Item angeklickt wird soll das Menü noch offen bleiben (bzw. wieder an gleicher Stelle geöffnet werden).
Letzteres könnte ich regeln, müsste mir aber in einer externen Variable in OnPopup den Punkt merken, wo das Menü geöffnet wird.
Gibt es eine schlankere Möglichkeit?
(Mögliche andere Item-Klicks oder Verlassen des Menüs sollen dieses ganz normal schließen.)

Delphi-Quellcode:
procedure TdmlOlympic.MIPlayerHelpPlayerClick(Sender: TObject);
var
  PanelPlayer: TodPanelPlayer;
begin
  if PopupMenuPlayer.PopupComponent is TodPanelPlayer then
  begin
    //PopupMenuPlayer.DoNotCloseOnThisClick;
    PanelPlayer := PopupMenuPlayer.PopupComponent as TodPanelPlayer;
    PanelPlayer.odPlayer.HelpPlayer := MIPlayerHelpPlayer.Checked;
    //PopupMenuPlayer.OpenOnOldPosition;
  end;
end;

procedure TdmlOlympic.MIPlayerTeamLeaderClick(Sender: TObject);
var
  PanelPlayer: TodPanelPlayer;
begin
  if PopupMenuPlayer.PopupComponent is TodPanelPlayer then
  begin
    //PopupMenuPlayer.DoNotCloseOnThisClick;
    PanelPlayer := PopupMenuPlayer.PopupComponent as TodPanelPlayer;
    PanelPlayer.odPlayer.TeamLeader := MIPlayerTeamLeader.Checked;
    //PopupMenuPlayer.OpenOnOldPosition;
  end;
end;



[EDIT]
Oh Mann, wer lesen kann ist klar im Vorteil! :oops:
PopupPoint ist ja öffentlich...
Delphi-Quellcode:
PopupMenuPlayer.Popup(PopupMenuPlayer.PopupPoint.X, PopupMenuPlayer.PopupPoint.Y);

[/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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