启动一个新的多设备应用程序并在其上放置一个按钮。在窗体中声明成员变量
POP: TPopupMenu
. 双击按钮并在事件中插入以下代码:
var
MI : TMenuItem;
I : Cardinal;
begin
FreeAndNIL(POP); // POP is a member variable of the form
POP:=TPopupMenu.Create(Self);
FOR I:=1 TO 10 DO BEGIN
MI:=TMenuItem.Create(POP);
MI.Text:=IntToStr(I);
MI.OnClick:=Button1Click;
POP.AddObject(MI)
END;
POP.Popup(100,100)
end;
TMenuItem
).
它应该弹出一个菜单,当你点击按钮,但它没有(实际上,它有点-它弹出一个0像素宽的弹出菜单,你可以验证按钮不会“发光”当你移动鼠标在它上面,直到你点击某个地方“关闭”这个(看不见的)弹出菜单)。
POP.PopUp
)它转移了
t菜单项
进入新的弹出菜单类型,并开始计算弹出菜单的大小。但是当它在项目上迭代时,它跳过了处理菜单项文本宽度的部分(没有“TextObject”,即NIL)。
如果我在VCL中做类似的代码,它工作得很好,那么在FMX中有什么不同使它不能工作呢?我需要“承诺”这项任务吗
TPopupMenu