我知道这是一个愚蠢的问题,但是当改变视觉库时,我发现了一个"麻烦"与FMX ... 我的问题是:我需要做自己的边框,所以我设置为Border Style:" None",但应用程序全屏运行,也覆盖了Windows工具栏,所以我想要一种方式根据屏幕重新调整申请表格的大小,例如:
mainForm->Height = Screen->Height - 10;
可以使用VCL,但有没有办法使用FMX库? 我对FMX的最大限制是(我不知道它是如何返回值的,以及值的类型):
Screen->Size(); // TSize
我现在也接受了它,但我有编译错误:
TSize* Tamanho = new TSize;
Tamanho = Screen->Size();
frmPrincipal->Width = Tamanho->Width;
frmPrincipal->Height = Tamanho->Height - 10;
错误:" E2034无法隐蔽' TSize'到' TSize *'"
最后我试图把它放在frmPrincipal.h上,但同样的错误:
TSize *Tamanho;
PS:解决"主要问题的其他可能解决方案"是可以接受的......
非常感谢!
答案 0 :(得分:4)
TScreen::Size()
返回TSize
结构的实际实例,而不是TSize*
指针。您需要相应地更改代码:
TSize Tamanho = Screen->Size();
frmPrincipal->Width = Tamanho.Width;
frmPrincipal->Height = Tamanho.Height - 10;
或者,您可以使用FMX的Platform Services框架直接访问IFMXScreenService
界面(这是TScreen::Size()
在内部使用的内容):
_di_IInterface Intf;
if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXScreenService), Intf))
{
_di_IFMXScreenService Svc = Intf;
TPoint size = Svc->GetScreenSize().Round();
frmPrincipal->Width = size.X;
frmPrincipal->Height = size.Y - 10;
}