问题标签 [delphi-10.4.2]

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 回答
103 浏览

delphi - Delphi FMX TTreeView 参数超出范围异常

使用德尔福 10.4。我希望有人能解释我的 FMX 做错了什么TTreeView,导致EArgumentOutOfRangeException. 我正在尝试创建一个自定义TTreeViewItem类,该类允许我将一些数据与每个节点相关联,并提供一个就地编辑器来允许更改节点文本。

下面的代码是我正在做的精简版本。FMX 表单上有一个TTreeview和两个按钮,表单Onshow设置为FormShow,按钮设置为两个按钮事件。

TVLinkTreeViewItem是我的自定义TTreeViewItem,我在其中为我的就地编辑器添加背景和编辑组件,双击节点时会显示该组件。

当您按原样运行代码时,当逻辑到达例程TreeView1.EndUpdate末尾的调用时,程序将抛出FormShow异​​常。FMX.Controls在过程中抛出异常TControl.EndUpdate

如果您注释掉ExpandAll调用,则不会抛出异常,但如果您弄乱了节点的展开和折叠以及表单的大小调整,迟早会抛出异常。我在下面的代码中留下了这一ExpandAll行,因为我认为异常是由相同的错误引起的。

据我所知,问题似乎是我如何设置fBackgroundand fEditor。如果我不调用AddObject例程并且不设置Parent属性,我也不会例外。

那么谁能告诉我我做错了什么?TTreeViewItems或者有没有更好的方法来为 FMX组件进行就地编辑?

这是 fmx 的内容:

0 投票
2 回答
215 浏览

delphi - 读取 ISAPI DLL 中的请求标头

我正在使用 Delphi 10.4.2 和 IIS 10 编写一个 ISAPI DLL。

配置、内容、请求-响应、调试,一切正常。

但是,我无法读取请求的自定义标头。测试请求来自 Postman。

TWebModule1.WebModule1DefaultHandlerAction中,请求继承自Web.Win.IsapiHTTP.TISAPIRequest

我正在使用Web.Win.IsapiHTTP.TISAPIRequest.GetFieldByName()Embarcadero 文档中提到的方法。

我已经添加<add name="Access-Control-Allow-Origin" value="*" />  到服务器端的配置文件中。

我觉得我错过了什么。

例如,这返回空内容,但从我发送的客户端,每个 GetFieldByName 返回一个空字符串。

0 投票
0 回答
108 浏览

delphi - 如何宣布 Bonjour 服务?

我正在尝试实现在 OSX 上宣布 Bonjour 服务的代码。开箱即用,没有直接的方法可以做到这一点。

Macapi.Foundation以下接口:NSNetServiceClassNSNetService。然后是包装类TNSNetService。这些是应该让我宣布服务的接口和类。

在我的课堂TsdBonjourAnnouncerMac上,我有一个activate()宣布服务的方法。我遵循与创建 Bonjour 侦听器相同的代码模板,效果很好。但是,此代码崩溃。

这行代码INetService := TNSNetService.Wrap(TNSNetService.OCClass.alloc);引发了访问冲突。 TNSNetService.OCClass.alloc是罪犯。

我不知道如何解决这个问题。

我发现了这个:直接从 Delphi 使用 OS X API。它显示了一个稍微不同的过程。我尝试使用它,但无法调用任何方法,NSNetService因为它们不是类方法。

我怎样才能让它工作?

0 投票
1 回答
37 浏览

deployment - 将 FMX Delphi Sydney 10.4.2 部署到 IOS 模拟器错误 (xcode 12.5 / IOS 14.5)

我尝试了我的第一个测试,将一个简单的 FMX 应用程序部署到 Apple 世界。我安装了 MacOS BigSur 11.5.2 的 MacBook Pro Intel i5(从 Mojave 升级)并从 Apple store 12.5 安装了 xcode(支持 IOS 14.5)。部署到 64 位 macOS 本身是可行的。现在我尝试部署到 IOS 模拟器,但出现错误“/Applications/PAServer-21.0.app/Contents/MacOS/db...”无法创建进程。我在 delphi 方面找不到完整的错误(在输出或构建消息中没有更多信息)。以详细方式运行 PA 服务器会给出最后一个命令“Applications/PAServer-21.0.app/Contents/MacOS/dbkosx_27_0” - 听。

我是新手,所以不确定这些版本组合(MacOS BigSur 11.5.2 / XCode 12.5 / IOS 14.5 )是否可以工作。如果没有,什么组合应该起作用。为了测试,我在 Xcode / 模拟器和设备屏幕上安装了 IOS 13.7 支持并创建了一个新设备。但我不知道让delphi从Mac下载SDK。它仍在为该设备使用 IOS 14.5 SDK。
如果我尝试直接在 mac 上启动应用程序,我会收到一个错误,似乎暗示它将是一个 32 位应用程序????

我看到构建过程正在使用“dccios32.exe”?

在此处输入图像描述

0 投票
2 回答
183 浏览

delphi - 使用我们的外部库很好地缩放图像

我正在使用 Delphi 10.4.2 并且我正在尝试找到一种方法来缩放图像以保持图像质量并且不请求外部库

这是我尝试过的,您可以在以下位置找到两个测试{$REGION}

正如你所看到的,对于我使用的第二个测试,GraphUtil.ScaleImage但输出是一个空图像,所以我不确定我是否正确使用它,不幸的是我还没有找到这种方法的任何示例..

0 投票
2 回答
135 浏览

image - TWICImage:如何保存透明的 BMP?

我正在使用 Delphi 10.4.2,并且我有一个可以缩放图像(BMP、GIF、PNG、...)的应用程序。

我的问题是,如果输入图像是透明 BMP,则输出 BMP 不是透明的,而是黑色背景。当输入是透明 PNG 并且我想输出 BMP 时,也会发生这种情况。我怎样才能避免这种情况?

示例代码:

0 投票
1 回答
131 浏览

delphi - 如何在 Delphi FireMonkey 的 MapView 顶部添加可点击按钮?

我需要在 TMapView 顶部添加一个带有自定义图像的可点击按钮,这可能吗?

ps:即使我把TImage留在view上面,地图也会覆盖它,也就是按钮会快速出现,直到地图渲染覆盖它...

编辑ps2:示例没有代码,我只是在Form上放了一个TImage,作为TMapView的子级,或者作为TForm的子级,当我在android上测试它时,打开应用程序时图像很快出现在之前地图,然后当地图开始出现时,它会覆盖图像......

编辑 ps3:我不知道 TImage 是否是执行此操作的正确方法,这是要留在地图顶部的任何组件,它会不断显示,用作按钮吗?就像在谷歌地图上...

0 投票
2 回答
77 浏览

delphi - 何时在 TDBGrid 后代上创建子组件?

我在 TDBGrid 后代上添加了一个 ControlButton。

问题是,在我创建 ControlButton 的那一刻,Self.Top、Self.Left 属性为 0,而 Self.Parent 为 nil。所以我的按钮没有父级并且不可见。

我应该重写什么方法来创建已经分配了 Grid 父级的按钮?我试过AfterConstruction,同样的问题。

我发现的最佳替代方法是覆盖 SetFocus 并检查 not Assigned(ControlButton),但它仅在用户进入网格时创建按钮。

谢谢你。

0 投票
0 回答
50 浏览

delphi - “Samples\Object Pascal\Database\EMS\FireDACResource”示例如何工作?

我需要编写一个 Android 应用程序,并且我想使用 RAD-Server 为其提供数据。

FireDACResource 示例似乎正是我所需要的,但我不明白它是如何工作的(而且文档非常缺乏)。

主从关系上有两个 FDQueries(qCostumers 和 qOrders),集中在 SchemaAdapter 上。要发布该数据,它使用 EMSDatasetResource,但该组件没有 SchemaAdaptar 属性来指示要发布的架构,只有一个 Dataset 属性,因此示例发布 qCostumers 而不是 FDSSchemaAdapter1。

当仅发布了 qCostumers 时,客户端应用程序如何接收整个架构?当我在浏览器或 RESTDebugger 上尝试 http://localhost:8080/test 时,我只得到一个带有 qCostumers 数据的 JSON(没有字段定义,也没有 qOrders 数据),但客户端应用程序接收到整个架构,包括订单详细信息,当它在 EMSFireDACClient 上调用 GetData 方法以检索“测试”资源时。

所以我的问题是:

  1. 您如何区分要发布 Dataset 或 SchemaAdapter 的 EMSDatasetResource ?

  2. 您如何调试并查看与整个 Schema 数据一起返回的 JSON?,因为 GET 调用仅返回主数据。

谢谢你。

0 投票
1 回答
183 浏览

delphi - 有什么方法可以更改我的 IDE 的字体?(RAD 工作室 10.4)

有什么办法可以改变字体吗?我想放一个更好的,但我不能改变它,让我修改颜色