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.