问题标签 [delphi-xe]

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 投票
2 回答
10530 浏览

delphi - 在 Delphi XE 中将 UnicodeString 转换为 PAnsiChar

在 Delphi XE 中,我使用的是BASS 音频库,其中包含以下功能:

'url' 参数的类型是 PAnsiChar,所以在我的代码中我做了一个演员表:

编译器在这一行发出警告:“字符串到 PAnsiChar 的可疑类型转换”。在尝试消除警告时,我发现推荐的方法是使用双重转换:

这确实消除了警告,但 BASS 函数现在返回错误代码 2(“无法打开文件”),它告诉我它收到的 URL 字符串以某种方式损坏。我看不到低音 DLL 实际接收到的内容,但在调试器中使用断点,字符串看起来不错:

此时字符串 s 看起来很好,但是当我通过它时 BASS 函数会失败。我的初始代码:PAnsiChar( url ) 与 BASS 配合得很好,但会发出警告。

那么在没有警告的情况下从 UnicodeString 到 PAnsiChar 的正确方法是什么?

0 投票
2 回答
3108 浏览

delphi - 如何在默认 Unicode 的 Delphi XE 应用程序的消息对话框中使用 ASCII 艺术符号

我已经搜索了主题提供,但没有设法找到正确的...

对不起,如果我弄错了。如果是这样,请在此处指出正确的问题。

好吧,说回正事。情况:我使用 ShowMessage() 作为应用程序中某些事件的简单“状态简报”提供程序:

现在,我想完善它,因此我想使用扩展的 ascii 表,但是,我无法选择访问它们的最佳方式。也许我只是不知道那个神奇的功能......

这是使用 OEMToANSI / OEMToChar 和反之亦然函数的方法:http ://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20381022.html 。我尝试了它们但没有运气,可能是因为:

来自EDN / MS-Help 的语法

BOOL OemToChar(LPCSTR lpszSrc, LPTSTR lpszDst);

参数

lpszSrc [in] 指向来自 OEM 定义的字符集中的以 null 结尾的字符串的指针。

lpszDst [out] 指向已翻译字符串缓冲区的指针。

如果将 OemToChar 函数用作 ANSI 函数,则可以通过将 lpszDst 参数设置为与 lpszSrc 参数相同的地址来转换字符串。如果将 OemToChar 用作宽字符函数,则无法执行此操作。

我需要的是 Char(Ord(170)); , 字符(Ord(180)); 和 Char(Ord(190)) - http://www.asciitable.com/。显然,使用默认的 WInXP 代码页我无法使用它们。现在,我google了一下,找到了这个解决方案:


FormShow 事件代码:

这些字体也将正确显示>> Courier New Lucida Console MS Mincho


现在,问题是 - 说 Windows Dialogs (API) 使用触发 ShowMessage() 的过程的 OEM 字符集的最佳方式是什么?? 覆盖 ShowMessage(); ? 继承一些richedit特性?各种 OwnerDraw() 或 WndProc() 方法......选项太多,但是......哪个......我很困惑。:(

当然,帮助我选择并指出主观上最有效和最无代码的解决方案。

0 投票
4 回答
9890 浏览

delphi - 是否可以在 Delphi XE 和 DataSnap 中使用 Indy 10.5.8.0?

案子

我正在尝试将 INDY 更新到我的 Delphi XE(更新 1)的最新版本,所以我从 indy.fulgan.com/ZIP 下载了最新的 INDY10 文件(Indy_4545.zip

包编译成功,现在我什至可以在关于框对话框中看到新版本 10.5.8.0,但在 IDE 重新启动后,我收到一条消息:

没有看到 encuentra el punto de entrada del procedimiento @Idhttp@TIdCustomHTTP@GetRequestHeaders$qqrv en la biblioteca de vínculos dinámicos IndyProtocols150.bpl。

我的免费英语翻译:

在动态链接库 IndyProtocols150.bpl 上找不到过程 @Idhttp@TIdCustomHTTP@GetRequestHeaders$qqrv 的入口点。

在快速比较新旧 IdHTTP.pas 后,我发现 TIdCustomHttp 类有很多变化,包括一些方法的重命名

  • GetResponseHeaders 到 GetResponse
  • GetRequestHeaders 到 GetRequest
  • SetRequestHeaders 到 SetRequest

随着在这个和其他和类接口中更改的公共/发布方法公司。

更新后,我得到了很多无法加载的包,包括 dclcxPivotGridOLAPD15.bpl,它又依赖于 dclDataSnapServer150.bpl,它遇到了 bpl 上的缺失方法。

AFAIK 我无法重新编译 dclDataSnapServer150.bpl (可能还有其他失败的包,我只是停在这里)。

IDE 上的 DataSnap 和 DevExpress 支持是我日常工作的必需品,所以

问题

  1. 是否有安全的预先建立的路径来更新到 Delphi XE 的最新 INDY?
  2. 如果不是,我是否可以通过创建旧的公共方法来压缩源代码并在实现部分调用新的方法来保证安全?
  3. 我是否遗漏了其他东西,或者我真的坚持使用 INDY 10.5.7 直到下一个 Delphi 次要/主要版本?
0 投票
1 回答
2144 浏览

delphi - 将特定图标大小从流加载到 TIcon

我的应用程序下载并显示特定网站的网站图标。我遵循 Bing 的从流中检测图像格式的解决方案,但遇到了另一个障碍。假设一个实际的图标图像,代码如下:

spFavicon是来自 Raize Components 的 TRzGlyphStatus。它的 Glyph 属性是一个 TBitmap)

现在,这可行,但有时下载的图标包含多个不同尺寸的图像,例如,除了预期的 16x16 之外,还包含 32x32。由于某种原因,控件的 Glyph 属性选择了较大的尺寸。

如何仅将 16x16 大小加载到 TIcon,或从 TIcon 加载到 TBitmap?

测试图标:http ://www.kpfa.org/favicon.ico

编辑时:如果可能的话,我宁愿避免先将图标保存到文件中。

0 投票
1 回答
2157 浏览

delphi - 如何让 Object Inspector 显示更多 TColor 属性值?

IDE Object Inspector 显示带有下拉 ColorBox 的 TColor 属性,并且可以按名称选择颜色 - clBlack 等,如图形单元中定义的那样。问题是图形单元中定义的 clWeb 颜色不存在,我定义的任何自定义颜色也不存在。

那么如何扩展在对象检查器中可选择的已定义颜色?

PS德尔福XE

0 投票
4 回答
6887 浏览

delphi - Delphi函数比较两个TStream的内容?

我需要比较两个TStream后代是否具有相同的内容。对我来说唯一有趣的结果是布尔值 Yes / No。

我将编写一个简单的循环检查字节流内容的字节。

但我很想知道是否有一个已经存在的功能。我没有在 DelphiXE 或 JCL/JVCL 库中找到任何内容。

当然,这两个流具有相同的大小!

0 投票
2 回答
2193 浏览

delphi - Delphi:如何在 datasnap-xe 服务器中注册 ZLibCompression 过滤器

问题:

我在 DataSnap-XE 服务器中使用 ZLibCompression 过滤器。

客户端总是给出以下错误消息:

“Borland.Data.TDBXError: 通信过滤器 ZLibCompression 未注册。过滤器类需要注册才能与服务器通信”

问题:1

如何注册 ZLibCompression 过滤器?

编辑

问题2

如何让 DataExplorer 中的 Datasnap-Connection 链接到该服务器?

0 投票
5 回答
18351 浏览

delphi - 我怎样才能从内存中销毁(免费)表格?

我的项目中有 2 个表单(Form1 和 Form2),Form1 是自动创建表单,但 Form2 是可用表单。如何创建 Form2 并卸载 Form1?

我在此代码中收到“访问验证”错误。

这是Form1代码:

谢谢。


我将“Serg”代码修改为:

///

但是这个项目启动然后自动退出,为什么?我想显示 Form1,当我们单击 Button1 时,显示 Form2 和 free(Release) Form1。我怎么能这样?

0 投票
3 回答
5031 浏览

delphi - 如何在主窗体之前显示用于设置配置的窗体?

在我的项目中,我有两个表单(form1,form2),form1 是配置表单。

我想显示 Form1,当我们单击 Button1 时,显示 Form2 和 free(Release) Form1。我该怎么做?

我使用此代码。但是这个项目启动然后自动退出。一位朋友说因为应用程序消息循环从未启动,并且应用程序终止是因为主窗体不存在。我该如何解决这个问题?

///

0 投票
3 回答
1511 浏览

delphi - Delphi XE 是否支持指向泛型类型的指针?

我在 D2010 上,我必须坚持到 64 位出来。

使用泛型,不支持指向泛型类型的指针,我会发现它们确实非常有用。我在 SO(2009 年发帖)的其他地方读到了 Barry Kelly 爵士认为这在未来可能会发生变化。有谁知道 XE 是否支持此功能?

如果没有,我真的希望他们能进入 XE2。

谢谢。