问题标签 [rad-studio]
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.
delphi - 如何为firemonkey TGrid / TStringGrid中的特定列设置文本对齐方式?
在 firemonkey (RAD Studio 10.3) 中,我正在使用连接到数据库的 TStringGrid,并且我想更改特定列的文本对齐方式。我怎样才能做到这一点?在 TextSettings 属性中更改 HorzAlign 会更改所有列的对齐方式。
我尝试了此页面中建议的解决方案,但没有奏效!在较新版本的 Firemonkey 中,以下解决方案代码会导致错误。
TColumn 类中没有 CreateCellControl 函数可以被覆盖!这是我得到的错误:
在基类中找不到方法 CreateCellControl。
ios - iOS 通知声音在应用程序中播放,虽然这不是我发起的(仅限 iOS 12)
自从将设备更新到 iOS 12 后,我的 Delphi 应用程序开始在应用程序中完成特定操作时播放声音通知。这不是我编码或配置的。在 iOS 11 或更低版本中使用应用程序时,不会播放声音通知。
该项目在 Delphi 10.3.1 中构建和编译。我在 RAD Studio 文档或在线的任何地方都找不到任何关于这种现象的提及。在 iOS 设置中禁用应用程序的通知确实有效,但此解决方案显然有其缺点。
编辑:这是我一直在阅读的文档:http://docwiki.embarcadero.com/RADStudio/Rio/en/Mobile_Tutorial:_Using_Notifications_(iOS_and_Android)
此操作在启动时会启动旋转轮动画,指示等待(不是 TAniIndicator)。此时还会启动一个 TTimer,向用户指示等待了多长时间。但是,我看不到计时器中的事件处理程序如何实现这一点:
有没有人遇到过同样的问题,并且知道可能导致它的原因吗?我怀疑某处有一些配置,或者它可能是隐藏在我的代码深处的副作用。
delphi - 如何在 Delphi firemonkey android 中处理 Firebase FCM click_action?
我可以使用 Delphi 10.3.2 重现相同的 android 应用程序,按照 https://community.idera.com/developer-tools/b/blog/posts/firebase-android-push-notification-support-with-中的步骤操作辐射工作室 10-3-1
接收firebase推送通知,但是,当用户单击通知时,我没有发现处理FCM click_action的线索。
我尝试向 androidmanifest.xml 添加一个额外的意图过滤器操作 android:name="CUSTOM_ACTION"
并使用 MainActivity.registerIntentAction(StringtoJString('CUSTOM_ACTION'));
注册意图动作和测试。
如果我在 FCM 通知中包含 click_action,当用户单击通知时,什么也不会发生。如果我删除 click_action,当用户点击通知时,应用程序将被打开。
任何人都知道我们应该如何在 Delphi 中配置来处理 FCM click_action ?
delphi - 如何在 firemonkey TStringGrid 中完成编辑后立即将数据发布到数据库
在 Rad Studio 10.3 中,我通过使用 LiveBindins 向导并选择 FireDAC 将 StringGrid 连接到数据库。一切都很好,除了以下问题:
当用户编辑单元格并按 Enter 时,值被正确编辑,但新值不会发布到数据库,直到用户导航到另一行。换句话说,如果用户更改单元格的值并停留在当前行,则新值不会发布到数据库。
有没有办法在编辑完成后立即发布新值?如果是,如何?
如果此处需要示例是我的问题示例项目的链接。
c++builder - 如何自动将函数声明放在头文件中?
在 Delphi 中,您在“实现”中编写一个函数,然后您必须将该函数也放入“接口”部分。乏味但幸运的是有一个快捷方式:按Ctrl+ Shift+C并且 Delphi 会自动执行此操作。(嗯,这有点不可靠,因为它只有在你有点幸运的情况下才有效......但在大多数情况下都有效)
http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_Class_Completion
带有令人讨厌的头文件的 C++ 使这项工作更加令人不快。但是没有Ctrl++Shift可以C帮助你。你能像在 Delphi 中那样自动化这项工作吗?
iis - 生产环境API调用URL中使用emsserver/emsserver.dll
我创建了一个利用 RAD Studio 的 EMS 服务器功能的应用程序。该开发已在生产环境中完成并经过测试。EMS 服务器文档显示,为了进行 API 调用,需要将 emsserver.dll 包含在 URL 中。
https://{hostname}/emsserver/emserver.dll/API/Login?token={TokenValue}
我遇到的大多数 API 都没有将 dll 嵌入到 URL 中。
https://{hostname}/API/Login?token={TokenValue}
这没什么大不了的,因为 API 调用可以正常工作。我只是想知道是否有可以在 RAD 服务器或 IIS 中使用的属性或设置来默认 URL 的 emsserver/emsserver.dll 部分。
multithreading - TThread::Queue 崩溃 C++ Builder
我正在使用 C++ Builder 2010。我有一个运行良好的TThread::Synchronize
调用 - 一个线程函数调用Synchronize
并且运行良好。但是,如果我用它替换它TThread::Queue
会立即崩溃。
该版本的 C++ Builder 中是否存在特定错误或发生其他问题?
这是我用来调用主线程函数的函数:
它调用的函数非常简单,它只是用一些文本更新工具栏,可能只有 2-3 行代码。
c++builder-10.2-tokyo - C++ Builder - CodeGuard 和 madExcept
我喜欢使用 Codeguard 实用程序来检测数组范围和内存泄漏。不幸的是,cg 在 RAD studio 10.2 中对我不起作用(我们在三台计算机上安装了 10.2 并且同样的问题)。当 CG 在代码中检测到问题时,它会冻结并且在调试器中没有行高亮显示。在 cgl 文件中没有任何内容或一两行文本 - 没有更多。这是在带有一个主 cpp 文件的小型 VCL 项目上测试的。有谁知道可以配置什么来解决这个问题?在旧版本 XE7 上,CG 没有问题,我被广泛使用。所以,我正在尝试madExcept。madExcept 可以像这样检测数组溢出问题:
整数数组[10];数组[10]=0;
对我来说,使用默认配置时,在 array[10]=0 上执行代码时不会发生任何事情(但以前版本的 rad 中的 CG 可以检测到类似的问题)。当程序完成时,madExcept 说:没有泄漏检测。madExcept 可以检测到这种溢出吗?
delphi - 如何从 EMS 服务器数据库中获取 USERID
我想访问 RAD Studio 中 EMS 数据库的 USERS 表中的 USERID 字段。我知道我可以创建一个查询来访问 Interbase 数据库中的字段。但是,我想知道是否有可用的内置函数/方法可以返回类似于 BackendUsers.Users.QueryUserName 方法的值。
我试图找到一个从 JSONObject 中提取 USERID 的示例,但没有成功。我在 REST/JSON 方面的经验有限,但每天都在变得更好。如果有人能指出我正确的方向,将不胜感激。
linker - 无法在 BPL 中找到未解析的外部/过程入口点
我在继承自TFileStream的现有项目中有一个名为TTextStream的类。它有一组重载的operator<<和operator>>函数作为成员函数。
大多数建议相反,您应该为这些运算符编写外部函数,并使它们成为相关类的朋友,以便能够访问私有和受保护的成员。
因此,作为浏览和清理代码的一部分,我这样做了。
并添加了功能示例
然后像往常一样在.cpp中实现。
然后在我添加的TTextStream类中
该项目生成一个C++ Builder 包 (BPL),我们称之为Foo.bpl。它编译得很好,然后我继续编译下一个 BPL 包Bar.bpl,它使用来自Foo.bpl的功能。
所有这些 BPL 都输出到“默认”文件夹C:\Users\Public\Documents\Embarcadero\Studio\20.0\BLP
Foo.bpi添加在Bar.bpl项目的Requires下。
在建造时我得到了
如果我尝试与Foo.lib静态链接,它可以正常工作。经过一番挖掘,我得出结论,该函数没有正确导出到Foo.bpl。
据我了解,我必须为此使用PACKAGE宏,因此我将其添加到.h文件中的定义和.cpp文件中的实现中。
我重新编译Foo.bpl,然后编译Bar.bpl,它现在可以正常编译和链接。但是Bar.bpl是一个运行时和设计时包,当我在 IDE 中安装它时,会弹出一个 Windows 消息对话框,其中包含与以前基本相同的消息。
所以它似乎抱怨没有找到一个函数,这似乎是在Bar.bpl的Foo.bpl中导出的?
不太确定我错过了什么。TDUMP似乎表明它实际上正在被导出。
或不拆线
我还测试了其他调用约定以排除这种情况。
作为辅助测试,我还创建了一个小测试用例。
生成带有单元 (functions.h/functions.cpp) 的 bpl 的项目添加了单个函数
这只是将两个数字相加,并在 .cpp 文件中实现。编译并链接 BPL。
然后我创建了一个控制台应用程序,它需要有问题的 bpl,包含带有函数定义 (functions.h) 的头文件,编译并且链接失败并出现相同的错误。所以我可能错过了一些明显的小事......
所有这些都是使用RAD Studio 10.3.2完成的,而不是使用经典编译器。