, поэтому я создал пользовательскую кнопку на основе cxButton.Я хочу показать Popupmenu, когда я нажимаю эту кнопку.Но почему-то Popupmenu не появляется.Я даже не получаю сообщение об ошибке, я понятия не имею, почему.
type
TcxGridButton = class(TcxButton)
private
FGridView : TcxGridDBTableView;
FPopup : TPopupMenu;
procedure AutoSize(Sender : TObject);
procedure ClearFilter(Sender : TObject);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner : TComponent); override;
procedure Click; override;
published
property GridView : TcxGridDBTableView read FGridView write FGridView;
end;
А вот часть, где я создаю всплывающее меню
constructor TcxGridButton.Create(AOwner: TComponent);
var Item : TMenuItem;
P : TPoint;
begin
inherited;
Text:='Options';
FPopup := TPopupMenu.Create(Self);
Item := TMenuItem.Create(FPopup);
Item.Caption:='Nach Excel exportieren';
Item := TMenuItem.Create(FPopup);
Item.Caption:='Automatische Größenanpassung';
Item.OnClick:=AutoSize;
Item := TMenuItem.Create(FPopup);
Item.Caption:='Filter löschen';
Item.OnClick:=ClearFilter;
end;
Теперь, когда я помещаю эту кнопку наФорма, в которой сразу отображаются параметры текста, поэтому кажется, что конструктор работает нормально.
Но когда я нажимаю эту кнопку, я получаю Click, Self.ToString и Done.Но всплывающее меню никогда не всплывает.В чем моя ошибка?
procedure TcxGridButton.Click;
begin
inherited; // call the inherited Click method.
ShowMessage('CLICK');
if not Assigned(FGridView) then Exit;
ShowMessage(Self.ToString);
FPopup.Popup(0,0);
ShowMessage('DONE');
end;