我们目前正在评估Delphi XE2,正如您所期望的那样,我已经开始使用FireMonkey,因为OS X和iOS开发非常有趣.我已经看过一些人们使用XE2创建iOS应用程序的演练,我已经设法做到了这一点,但是iPhone上的"业务应用程序"的面包和黄油(iOS支持的销售方式)是按钮,列表,网格和连接(REST?).
无论如何,一旦你创建了你的iOS HD项目,TButton最初看起来是绿色的,而TSpeedButton和TToolbar看起来应该是它应该的(蓝色渐变).TToolbar没有任何添加按钮的方法,大概这只是一个Panel,那么呢?
有没有人为FM iOS HD应用程序创建样式,或者是否有任何包装器允许直接创建标准iPhone控件?
如果我试图使用试用版评估(由于显而易见的原因,其中包括其他内容并不提供来源,我感到有点倒退),我深表歉意!
谢谢,
罗斯
在Delphi XE2中,我们使用了
{$ifdef Win32}
{$ifdef Win64}
Run Code Online (Sandbox Code Playgroud)
确定我们所处的平台.
是否有任何预定义的条件可以识别VCL和FMX?
我正在尝试使用Apple Snow Leopard 10.6.8上的Xcode v3.2.6调试使用Delphi XE2和Update 1编译的FireMonkey应用程序.我能够在Xcode中加载项目,编译它并在iPhone模拟器中运行它.
但是,调试似乎不起作用.当我使用"Run/Debug - Breakpoints On"启动项目时,我在Xcode中设置的Pascal源文件中的所有断点都被忽略,并且IDE在代码执行时不会中断程序.
我创建了一个"调试"配置,并在"部署"选项中取消选择条目"在代码中删除调试符号"和"剥离链接产品".在"构建选项"中,选择"带有dSYM文件的DWARF"作为"调试信息格式".
我安装了带有Update 1的Delphi XE2附带的FireMonkey/Free Pascal/Xcode工具.
我TEdit在Android上动态创建表单:
edit := TEdit.Create(Self);
Run Code Online (Sandbox Code Playgroud)
我想用它来释放它edit.Free,但它仍然在形式上.
此代码在win32上运行正常,但在Android上失败.
同样的情况似乎不仅发生在TEdit上,也发生在任何使用Android或iOS的组件上.
我有一个TComponent控制一些UI.此组件旨在通过使用条件来支持VCL和Firemonkey.此类条件指示我的组件是接受VCL控件还是FMX控件.目前预计此条件在应用程序级别定义,以指示组件在运行时是否管理VCL或FMX控件.
我想将我的组件发布到IDE中,同时支持VCL和FMX,与条件共享相同的单元.但是,根据当前是否正在使用VCL或FMX,属性名称/类型会有所不同.
例如...
type
TMyComponent = class(TComponent)
published
{$IFDEF USE_FMX}
property TabControl: TTabControl read FTabControl write SetTabControl;
{$ENDIF}
{$IFDEF USE_VCL}
property PageControl: TPageControl read FPageControl write SetPageControl;
{$ENDIF}
end;
Run Code Online (Sandbox Code Playgroud)
我的目标是能够将这个非可视组件放到VCL或FMX表单上,并在对象检查器中自动显示适当的框架特定属性.
如何注册通过条件共享VCL和FMX代码的组件?
我刚看了一下Firemonkey的网格实现,结果发现它是一个非常简单的实现(只有1800行,对于网格实现来说似乎并不多).它几乎没有自定义绘画,而是聚合了许多其他控件 - 这似乎是Firemonkey的做事方式.
例如,每列保留一组控件 - 每个单元一个.对于具有1,000,000行的普通文本列,网格将在内存中保留1,000,000个编辑控件 - 这对我来说似乎有点疯狂.(编辑:现在不太确定,如果这个假设是正确的.它似乎考虑了细胞的可见性,这可能意味着它确实提供了类似虚拟模式的东西,但我不太确定......)
我的问题:毫无疑问,Firemonkey的这种组件聚合设计看起来简单而优雅,但是它真的可以很好地扩展到必须在网格中显示的数据量吗?我无法想象它在大量行中表现良好.什么是Firemonkey处理大量数据的方式?
感谢您的任何意见.
我用旋转的tText3d对象创建了一个Hello World Firemonkey应用程序.如何摆脱文本周围的线框框?
编辑:这是一个值为'hullo!' 的TText3D对象的屏幕截图 Text在FireMonkey HD表单中的Viewport3D上.A TTimer经常更改其中一个旋转值.它旋转,但看起来像这样:

更改标题时线框的大小会发生变化,因此也许这就是文本的位置.不知道黑条是什么.

我正在查看tText3D的源代码.渲染.最后一行说或多或少,
如果在设计模式下,则绘制一个框.
除了,IF部分被注释掉,因此无论是否在设计模式下,总是绘制框.
我有一个Windows Firemonkey应用程序,它使用TClientDatasets加载我试图在OS X上工作的XML数据文件.数据文件存储在Windows文件共享中,因此多个用户可以访问相同的数据(我不是关注并发问题).
我似乎无法让mac版本从服务器加载文件 - 它似乎自动预先扩展我在TClientDataset.Filename属性中设置的本地路径.
如果我在启动应用程序之前将数据文件复制到应用程序包中,它可以完美地工作,所以我想我会尝试在代码中复制文件,但我无法让它工作 - 它无法找到文件在服务器上.
TFile.Exists('smb://<servername>/<path>/Data.xml');
Run Code Online (Sandbox Code Playgroud)
尽管我可以在Finder中看到它,但返回FALSE.
理想情况下,我更喜欢从共享中加载文件,而不是在启动时复制它们并在退出时复制回来.
FMX控件没有颜色属性.什么是FMX相当于VCL.TColor?
FMX.Panel1.Color:= clBlack
每当我在我的FMX表格(RAD Studio 10.2)上放置FastReport 2.0 FMX - > TfrxReport组件时,我会收到弹出的错误消息"clCantRen"
运行时没有调试我得到以下错误"[dcc32错误] E2161错误:RLINK32:打开文件时出错"C:\ FireMonkey\MainFrm.fmx"
我的库路径如下
Win32: - C:\ Program Files(x86)\ FastReport FMX\LibD25 Win64: - C:\ Program Files(x86)\ FastReport FMX\LibD25x64
即使我试图保存项目或关闭项目,也不允许我通过弹出错误信息"clCantRen"来这样做.
只有在我从fmx表单中删除组件TfrxReport后,才允许我保存并关闭.请有人告诉我为什么我在FMX表格上收到TfrxReport组件的错误.
任何帮助将不胜感激.
delphi ×10
firemonkey ×10
delphi-xe2 ×4
ios ×3
android ×1
components ×1
debugging ×1
delphi-xe4 ×1
fastreport ×1
iphone ×1
macos ×1
vcl ×1
xcode ×1