Einzelnen Beitrag anzeigen

Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#10

AW: Testen ob Popupmenu gerade angezeigt wird?

  Alt 15. Apr 2011, 21:38
O.K.

wenn ich nun nicht prüfen kann (jedenfalls nicht so einfach), ob ein Popup-Menü geschlossen wurde - dann doch zumindest, ob vorher eines geöffnet wurde . . .
oder mach' ich da jetzt einen Denkfehler ?

Code:
    uses . . ., ExPopupList;

    Pop : Boolean;
    procedure CMMenuClosed(var Msg: TMessage ); message CM_MENUCLOSED;
    procedure CM_ENTERMENULOOP(var Msg: TMessage ); message CM_ENTERMENULOOP;



procedure TForm1.CMMenuClosed(var msg: TMessage);
begin
  // nothing
end;

procedure TForm1.CM_ENTERMENULOOP(var Msg: TMessage);
begin
  Pop := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Pop := False;
end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
  if Pop
    then ShowMessage('Popup') else ShowMessage('No Popup');
  Pop := False;
end;
das Schließen des Popups über ENTER oder ESCAPE müsste dann noch per
OnKeyDown ausgewertet werden.

Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key = VK_Return) or (Key = VK_Escape) then Pop := True;
end;
Markus H.

Geändert von markus5766h (15. Apr 2011 um 22:00 Uhr)
  Mit Zitat antworten Zitat