做开发,就是发现问题,解决问题,又发现问题...周而复始的循环

下面又应该是Firemonkey下的bug。

官方文档中描述:

Using the FireMonkey TMenuBar's OSMenu Property to Place Your Main Menu for Windows and Mac。

But, 在XE4中 根本找不到OSMenu这个属性。

测试后发现,

TMenuBar在Mac下无法实现Mac风格;

而TMainMenu则可以;

Firemonkey的旁门左道[四]-LMLPHP

但是问题并没有就此结束,

如果TMainMenu没有添加Item,则一切正常;但是一旦有Item后,运行在Win下,竟然出现了除零错误。

Firemonkey的旁门左道[四]-LMLPHP

原因在于进行了SetMartix的坐标变换,导致LineLength := 0;

不过具体细节还没有深究,应该是Item项的增加影响了代码的流程,导致了这个问题的出现。

Firemonkey的旁门左道[四]-LMLPHP

另外一个问题还需要注意:

TMainMenu的Item无法给MacOS动态添加,而在Win下表现正常。

吐槽一下:跨平台是一个伟大的梦想,只是今天我们离它又近了一步,期待XE5的到来吧

05-07 15:25