【发布时间】:2013-12-20 17:19:25
【问题描述】:
我有一个 Firemonkey HD 应用程序并将其部署在 iPad 2 上。 工作正常。
当我在配备 Retina 显示屏的 iPad 4 上部署相同的应用程序时,我遇到了问题。
关键是我在表单上有一些绘图操作,需要准确的表单宽度和高度。
ShowMessage('form wh = ' + FloatToStr(TForm(FImage.Parent.Parent). Width) + ':' + FloatToStr(TForm(FImage.Parent.Parent).Height));
在两台设备上我都会收到一条消息:
form wh = 1024:748
我需要的是自动更改表单大小。
我应该怎么做才能得到它?
更新:我尝试使用 Screen.Size.Width 但在 Retina 显示屏上具有 Screen.Size.Width=1024。我做错了什么?
【问题讨论】:
-
表单应该是全屏的(自动调整大小以匹配屏幕)。在视网膜屏幕和非视网膜屏幕之间,大小将是相同的,只是比例发生了变化。您能否更详细地描述该问题或包含该问题的图片?
-
是的,当然。表格是全屏的。对我来说奇怪的是我有 Screen.Size.Width=1024 和 Screen.Size.Height=768。你想得到什么细节。我会为他们提供快乐。
-
由于表单是全屏的,显然是自动调整大小的。实际问题是什么?这个? docwiki.embarcadero.com/RADStudio/XE5/en/…
-
最近的解决方案在这里stackoverflow.com/questions/20124191/…。但是当我尝试获取屏幕结构时,我得到一个访问冲突(0x000000)异常......
-
等等,你的意思是
SupportsPlatformService调用在该代码中返回 True ,如果你然后尝试访问ScreenSvc接口,它会因访问冲突而失败?这将是一个严重的错误,因为该代码中提供的方式是正确的方式......
标签: ios delphi retina-display firemonkey delphi-xe5