问题标签 [delphi-xe7]

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 投票
0 回答
1282 浏览

delphi - FireMonkey 中的自签名客户端证书和 TRESTClient 组件

我正在使用 FireMonkey 构建多平台客户端应用程序,该应用程序将与内部开发的服务器进行通信,因此我们正在寻找在这种情况下使用自签名证书。

根据这篇文章:SSL / HTTPS on different platforms on different platforms with TIdHTTP and TRESTClient,似乎 TRESTClient 对 SSL 的支持是开箱即用的,不需要像 TidHTTP 那样分配 IO Handler。问题是我找不到将自签名证书分配给 TRESTClient 的方法,就像您可以使用 IdSSLIOHandlerSocketOpenSSL 组件那样。此外,TRESTClient.HTTPClient 似乎没有像 Indy 的 HTTP 那样发布 IOHandler 属性。

我的问题是:有没有办法在 Delphi XE7 中向 TRESTClient 组件提供自签名证书以及如何?

0 投票
1 回答
12711 浏览

delphi - Delphi XE-7 和 Indy 10.6.0.5169 的简单 UDP 示例/演示应用程序

我正在为 Delphi XE-7 和 Indy 10.6.0.5169 寻找一个简单的 UDP 示例/演示应用程序。

我一直在寻找一段时间,我一直在寻找的所有内容都是针对不再编译的旧版本的 Indy 或 Delphi。

我需要实现 UDP 客户端以处理 WS-Discovery 消息。

我尝试使用此处列出的应用程序:

http://delphi.about.com/library/weekly/code/src101105.zip

SendBuffer在这里给我一个错误:

0 投票
1 回答
4360 浏览

delphi - 获取 Delphi XE2 及更高版本的文件版本

我正在将程序从 Delphi 2010 更新到 Delphi XE7。下面显示的代码已停止工作,因为我认为需要适应 unicode 并使用 GetFileVersionInfoW 而不是 GetFileVersionInfoSize。

有没有人开发了我正在使用的功能的更新版本,如下所示?到目前为止,我在网上找不到任何示例,恐怕低级 Windows 编程有点超出我的能力。

谢谢你的帮助!

下面的旧代码不再适用于 Delphi XE2 及更高版本:仅返回 1.0.0.0

0 投票
1 回答
886 浏览

delphi - 在 Android Delphi Xe7 上关闭键盘时应用程序崩溃

创建一个新项目。在表单上放置两个 TEdit。部署到 Android 设备。启动应用程序。点击 TEdit 以调出键盘,点击手机上的硬件后退按钮......崩溃......这是我特有的东西吗?或者其他人可以证实这一点吗?我做错了什么吗?我已经尝试在表单的 keydown 事件和 TEdits 上设置 Key:=0 但这不起作用 - 应用程序仍然崩溃。

已安装 Delphi XE7 更新 1。

0 投票
1 回答
1471 浏览

excel - Excel 2010 自动化常量在 Delphi XE7 中不起作用

我正在尝试将程序从 Delphi 2010 转换为 Delphi XE7(32 位/windows VCL)。曾经在 D2010 中通过后期绑定 OLE 自动化 Excel 的代码现在在 Delphi XE7 中给出异常“无法设置应用程序类的窗口状态属性”,当应用程序最大化或最小化时。

我从具有以下常量的 ExcelXP 单元中获取常量 xlmaximized 和 xlminimized: xlMaximized = $FFFFEFD7; xl最小化 = $FFFFEFD4;

但是,如果我使用简单的常量值 -4137 和 -4140,程序确实可以正常工作。我意识到我必须做一些错误的简单事情。

下面是一些说明问题的示例代码。我对此进行了测试,它在 Delphi 2010 中有效,但在 Delphi XE7 中无效。我想这一定与新版本中常量的处理方式有关(?)有人能指出我正确的方向吗?提前致谢!

0 投票
1 回答
261 浏览

delphi - 如何从 FPC DLL 接收字符串?

如何从 FPC DLL 接收字符串?我想发送两个指针连接它们并在 Delphi 的另一个字符串中接收结果。

0 投票
1 回答
77 浏览

delphi - 在相关开关上打印

假设我有三个开关,分别是 SW_A、SW_B 和 SW_ALL。

单击 SW_A 时(从关闭到打开),TMemo 打印“SW_A 已打开”,同样适用于 SW_B。

但是,当单击 SW_ALL(从关闭到打开)时,TMemo 会打印“SW_ALL is on”,并且 SW_A 和 SW_B 都应该打开,无论它们当前的状态是什么,而不打印“SW_A is on”和“SW_B is on”。 '

我的问题是,每当单击 SW_All 时,其他开关也会打印出它们的状态。有谁知道如何解决这个问题?谢谢!!

0 投票
1 回答
1818 浏览

forms - Delphi:如何使用本机控件构建多设备应用程序?

或“如何在 Delphi 中将 UI 与业务逻辑分离?”

每个目标平台都有自己的一组原生 firemonkey 控件(Windows= VCL、MacOS= TMS mCL、Android= D.P.F、iOS=TMS iCLD.P.F)。新的FireUI(多设备表单设计器)是样式化组件的绝佳解决方案,但不适用于原生组件,因为它仍然需要主窗格上的相同组件来支持所有平台。由于您不能将它们混合在同一个表单上,它完全打破了 Delphi 的整个想法。

许多开发人员会说 Delphi一种失败的方法,请参阅“为什么 FireMonkey 在各个方面都存在根本性错误”。然而,这个问题的前提不是反对 Delphi,而是从它所提供的东西中获得最好的结果。

结论是,对于应用程序中的每个表单,您必须为每个目标平台制作一个单独的表单。这导致了这些问题:

挑战一:如何根据目标平台在项目中包含不同的表单文件?

方案一:将它们全部包含进去,即MainForm_IOS.pas、MainForm_Android.pas、MainForm_Win、MainForm_OSX.pas,然后在文件中使用编译器指令,这样只有其中一个文件的内容是活动的。缺点:一个大型应用程序可以有很多表单(我们大约有 40 个),所以我们谈论的是包含大量文件。

解决方案 2:不要将它们包含在项目中,而是将它们放在单独的文件夹中。然后您可以将匹配的文件夹添加到每个目标平台的搜索路径中。缺点:它们不会出现在项目管理器中,因此每次您需要查找文件时都会减慢工作流程。

解决方案 3:为每个目标平台创建一个项目。缺点:每次添加新单元或更改通用项目设置时,您都必须(记住)将其应用于所有项目。

更新:正如Malcom Groves 视频中所建议的,将所有业务逻辑放在一个包中将消除解决方案 3 的缺点。所以我认为解决方案 3 是最好的方法。

挑战 2:如何将不同的设备形式连接到(相同的)业务逻辑?

可能的解决方案:创建一个“Helper”类,其中包含您通常在表单单元中拥有的所有代码。

更新:这个“Helper 类”实际上是 MVVM 所称的ViewModel. 我需要的似乎是一个可以支持数据绑定的 MVVM 框架。我对此提出了另一个问题


欢迎任何关于最佳实践的意见和建议。

0 投票
1 回答
3960 浏览

delphi - Delphi XE2 和 Delphi XE7 中的 LongMonthNames 用法

为什么LongMonthNames[X]单独(没有名称空间前缀)在 Delphi XE7 中不起作用,而在 Delphi XE2 中起作用?

0 投票
1 回答
2416 浏览

delphi - Delphi VCL ShadowEffect 类似 FMX TShadowEffect

在 Firemonkey 中,我们可以使用 TShadowEffect 绘制漂亮的阴影。

此阴影还会调整其不透明度和半透明度,以便在控件重叠时在其下方显示正确的组件。

没有 TShadowEffect:

在此处输入图像描述

使用 TShadowEffect:

在此处输入图像描述

有没有办法在不嵌入 FMX 表单的情况下在 VCL 表单中绘制相同的阴影效果?