问题标签 [firemonkey-fm2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
370 浏览

delphi - FM2 Object Repaint Issue

Good evening guys.

I'm currently designing a social networking client for Twitter and Facebook in Firemonkey FM2 (delphi) and I'm experiencing a frustrating issue. At present, I've only got the Twitter code in process, but the issue is related to the [re]drawing of visual objects.

I've created a custom-styled TListboxItem layout in a stylebook consisting of multiple child components such as TText, TButton, and TImage. I've already dealt with connecting to Twitter and retrieving feed details. Each item retrieved is added to a TListbox and styled using my custom ListboxItem style layout.

Now, the issue is related to updating information on items in the list that aren't visible. For example, the items that are visible in the list without scrolling show their information correctly. Those that aren't visible besides the final item in the list have several of their details not set/visible. When I scroll the list downwards, and then back up, there's often 1 of the items that was originally visible will now be missing it's information.

To explain this a little more, i've got a TImage (known as photo) which is used to show the photo of the person who posted the 'tweet'. I've got the standard TText (known as text) used to show the contents/text of the tweet itself. I've got 2 buttons (known as Like and Share) used to perform their respective functions. I've then finally got another TText (known as NameDate) used to show the name of the tweeter and the date the tweet was posted.

I'm using this code to create the object and modify the data it shows;

GTPhoto is a standard ICS HTTP Client component, while TwitObj is my Twitter component. You can see that I'm saving the photo to a directory instead of streaming it. This was merely to check whether it was an issue with streams, but it's probably advisable to used a cache of some sort anyway.

The images download correctly, and the information for the relevant StyleResources in the custom ListBoxItem layout is updated as expected, but only for items that are visible without scrolling. If I scroll down the list, only the Text of each item is correct, while the other resources which were set at runtime have returned to the way they're designed in the stylebook (i.e. blank text, image, etc).

Am I missing something here? I understand the design intents of Bitmaps were changed in XE3 for the sake of performance, but surely Embarcadero wouldn't have overlooked something like this. Surely it's not expected for us to create each item inside the parent at runtime (and thus dealing with alignments and such) instead of using a stylebook resource, is it?

Any assistance or insight would be greatly appreciated.

0 投票
1 回答
4194 浏览

delphi - 如何在 Delphi XE3 FireMonkey 2 的 TTabControl 的每个选项卡上实现关闭按钮?

我正在尝试创建一个浏览器样式的 TabControl,在 FireMonkey FM2 的每个选项卡上都有一个小的关闭按钮。

由于 FM2 中没有 TTabsheet 和 TPageControl 组件,我无法使用“如何为 TPageControl 的 TTabsheet 实现关闭按钮”中的答案。我猜,这段代码提供了太多未声明的函数和变量,这些函数和变量在 FM2 中不再支持。

我不想使用任何第三方组件,因为你永远不知道它们是否会支持下一个版本的 Delphi :)

我可以提供在 Delphi XE3 VCL(但不是 FireMonkey)中运行良好的完整代码:

0 投票
3 回答
1900 浏览

json - 跨平台 JSON 解析

大家晚上好。

我目前正在开发我的产品WinFlare的跨平台兼容版本。我面临的问题是SuperObject仍然不能与 Firemonkey 跨平台兼容。无论如何,我在产品的原始版本中使用了它,但现在我想创建一个跨平台版本,而不是仅限于 Windows 的版本,我发现它很麻烦。

DBXJSON是我经过大量研究后能够找到的唯一跨平台解决方案,但事实证明,尝试和处理这令人沮丧。我为它找到的大多数示例要么不适用于我的情况,要么它们太复杂而无法从中获得任何有用的信息。有很多讨论,但我只是在努力掌握 SuperObject 如此简单的任务。今晚的大部分时间我都在努力寻找可以构建的东西,但我所尝试的一切都让我回到了原点。

理想情况下,我想修复 SuperObject,但我缺乏深入了解使其与 OS X 跨平台兼容的知识(并为移动工作室做好准备)。我欢迎对此提出任何建议,但我想没有人有时间完成如此艰巨的任务,看起来 DBXJSON 是我唯一的选择。

我正在处理的 JSON 布局仍然相同;

ips数组中可能有数百个结果。假设我想解析数组中的所有项目并提取每个latitude值。让我们再假设一下,我打算将它们输出到一个数组中。这是我想使用的那种代码模板;

本质上,在它说的地方{ Extract Objects from array },我想要使用DBXJSON的最基本的解决方案来解决我的问题。显然,我在上面的模板中显示的相关调用可能不正确——它们只是为了提供帮助。JsonArray

0 投票
1 回答
1896 浏览

delphi - 带有菜单的 FireMonkey 托盘图标

继续去年最喜欢的问题,随着 Delphi XE3 (Firemonkey 2) 的推出,无论是成熟的 OS 还是 iOS,在任何平台上仍然模糊地支持愚蠢的小托盘图标。

假设我们有一个使用平台相关代码的托盘图标。您将如何“单击”该图标以接收 FMX HD 表格(可能是菜单或更高级的高保真体验)?有一些棘手的事情需要克服,请想办法做到这一点,而无需在应用程序之外安装操作系统支持,例如 ActiveX/DCOM 组件... :-)

干杯!

0 投票
0 回答
415 浏览

delphi - 在 firemonkey 油漆盒上显示插入符号

有谁知道如何在 Firemonkey 的 TPaintbox 中添加闪烁的插入符号?

0 投票
1 回答
149 浏览

objective-c - 可可限制窗口移动区域?

我是可可的新手。我在 Windows 中有一个具有 MDI Child 的应用程序。现在我需要将它移植到 MACOS。我知道 Mac 没有那种 MDI Child,所以我尝试设置子窗口只能在主窗口内移动。那可能吗 ?

0 投票
1 回答
684 浏览

delphi - 来自 DLL 的 DWM 交互

大家早上好。

我目前正在尝试编写一个小型应用程序,该应用程序是围绕通过 Windows DWM API(例如 DWM Thumbnails)提供的功能构建的。其中一个功能是能够从应用程序中动态选择缩略图区域,并将其放大/放大。可以通过某种“设置区域”功能从 DWM 执行此操作,但我想先尝试我自己的路线,然后再深入 API。

最近找到了 Delphi 的示例,我希望从演示中扩展并构建更具体的东西。我开始着手将代码移至Firemonkey FM2应用程序(因为与 VCL 相比,我更喜欢框架的视觉功能)。通过一些调整,我设法构建了它,但不幸DWMRegisterThumbnail的是,尽管 VCL 版本运行完美,但在 FMX 应用程序中运行时似乎不会返回有效结果。

然后我再看远一点,决定试一试九头蛇。我将工作的 VCL 示例复制到 Hydra 插件中,并创建了一个 Firemonkey 主机应用程序。我正确设置了两个部分并进行了编译。DLL 正确加载,我可以按预期在 FMX 主机内看到 VCL 插件接口。但是,在尝试查看窗口的 DWM 缩略图时,我再次遇到了运行非 hydra FMX 应用程序时遇到的相同问题。

然后我开始创建一个 VCL 主机应用程序,以确保它不是特定于 VCL-FMX 交互的问题。我编译了 VCL 主机,加载到 VCL 插件中,我再次可以在 VCL 主机中看到 VCL 插件。然而再一次,我仍然发现我无法从 DWM 查看缩略图。显然,这不是 Firemonkey-VCL 交互问题。

因此,我得出的结论是从 DLL 运行 DWM 代码存在问题。理想情况下,我想要一个 FMX 主机应用程序,因为我更容易将 aTSelection放在缩略图上,并以这种方式处理缩放(例如非常少的代码,并且无需寻找自定义组件)提及额外的奖金,例如MakeScreenshot

所以,切入正题;是否可以从 Hydra 插件调用 DWM API,和/或将 DWM 缩略图输出到 Firemonkey 表面?

我的 Hydra 插件中使用的代码与链接示例中使用的代码相同,并且我的主机应用程序中使用的代码基于 Remobject Youtube 频道上的简单示例

0 投票
2 回答
3503 浏览

delphi - 如何在 FMX2 中直接访问 TBitmap 像素(TBitmap.ScanLine 替换)?

该类在 FMX (FireMonkey) 中FMX.Types.TBitmap具有该ScanLine属性,但似乎该属性已被删除,并且在 FMX2 (FireMonkey FM2) 中缺失。

有什么解决方法吗?我们应该如何TBitmap直接在 FMX2 中访问内容?

0 投票
3 回答
19481 浏览

delphi - 在 Firemonkey 中获取应用程序路径

因此,在 VCL 中,可以使用以下代码行来检索应用程序路径:

我尝试了同样的 Firemokey,我注意到 ExeName 不再可用。我可以使用什么代码来替代它?

0 投票
1 回答
1560 浏览

delphi - 在 Firemonkey 的任务栏前显示 NotifyIcon Popup

我正在为我的程序创建一个 notifyIcon,将来它将独立于操作系统,但现在我正在编写 win-32 部分。

当我收到 WM_RBUTTONDOWN 消息后显示弹出菜单时,我显示一个菜单,但此菜单位于任务栏后面。如何创建一个位于任务栏前面的常规菜单?

问题在于 fmx.popupmenu,假设它与 VCL.popupmenu 具有相同的行为是错误的吗?

编辑代码:

编辑:解决方法:

使用 VCL.菜单。而不是 Firemonkey.menus