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!
PopupPoint ist ja öffentlich...
PopupMenuPlayer.Popup(PopupMenuPlayer.PopupPoint.X, PopupMenuPlayer.PopupPoint.Y);
[/EDIT]