问题标签 [delphi-2009]
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 - Delphi 2009,Indy 10,TIdTCPServer.OnExecute,如何抓取InputBuffer中的所有字节
我正在搞乱 Delphi 2009 提供的 Indy 10,并且在 OnExecute 触发时无法从 IOHandler 获取所有数据......
AContext.Connection.IOHandler.InputBuffer.Size 似乎不可靠并且经常返回 0,但在下一次通过 OnExecute 运行时,它会获取正确的字节数,但为时已晚。
本质上,我希望能够抓取所有数据,将其填充到 UTF8String(不是Unicode 字符串)中,然后解析特殊标记。所以我没有标题,消息是可变长度的。似乎 Indy 10 IOHandlers 没有为此设置,或者我只是使用错误。
做一些事情会很好,比如传递一个特定大小的缓冲区,尽可能多地填充它并返回实际填充的字节数,然后如果还有更多则继续。
顺便说一句 TIdSchedulerOfFiber 的状态如何,这看起来很有趣,它有效吗?有人在用吗?我注意到它不在 Delphi 2009 的标准安装中。
更新:我发现 Msg := AContext.Connection.IOHandler.ReadLn(#0, enUTF8); 哪个可行,但我仍然想知道上述问题的答案,是因为它是基于阻塞IO的吗?这使得 TIdSchedulerOfFiber 更加热衷。
database - 关于迁移到多层 Delphi 架构的建议
我们有一个相对较大的应用程序,它与 Firebird 紧密相关(存储过程、视图等)。我们现在收到很多支持其他数据库的请求,我们还希望将很多功能从客户端转移到服务器。
现在似乎是迁移到 3(4) 层架构的好时机。我们已经看过 DataSnap 2009 和 RemObjects SDK/DataAbstract。两者似乎都可以胜任,但是我们应该注意哪些优点/缺点?您还有其他可以推荐的框架吗?
干杯,保罗
delphi - 在 Delphi 2009 和 Finalbuilder 6 中使用项目配置
有没有人有在 Finalbuilder 6 中使用项目配置选项和 Delphi 编译操作的经验。
目前,构建服务器设置为手动在编译操作上直接设置所有正确的搜索路径、编译器选项等。这避免了对配置文件的更改破坏了构建,并且搜索路径等可能与开发机器不同。但是,更改可能会很痛苦,因为它需要在 FB 中而不是在项目中完成。
使用 Delphi2009 中的新 BuildConfig 选项(以及 Finalbuilder 6 中对它们的支持),应该可以将此配置保留在 SCC 中并使其更易于维护和更新。
有没有人试过这个?
delphi - Datasnap:有没有办法在全球范围内检测连接丢失?
我正在寻找检测本地连接丢失。有没有办法做到这一点,就像 Corelabs 组件上的事件一样?
谢谢
编辑:抱歉,我将尝试更具体一点:我目前正在使用 datasnap 2009 设计原型。所以我有一个瘦客户端、一个无状态服务器应用程序和一个数据库服务器。
我能做的是检测和处理客户端和服务器应用程序之间的连接丢失(互联网连接)以适当地处理它,即:向用户显示一条信息性错误消息或检测服务器关闭以静默重定向另一个应用服务器。
在我使用 ODAC 组件管理的 2 层中,TOraSession 有一些事件来处理这个问题。
delphi - Delphi MSBuild 从命令行构建配置
Delphi 2009 使用构建配置。当您创建一个新项目时,您有两个默认构建配置“调试”和“发布”。
现在我问自己如何使用 MSBuild(自 2007 版以来由 Delphi 支持)自动化构建。
您可以在某些 Delphi 项目目录的“RAD Studio 命令提示符”中启动“msbuild”命令,它将构建默认构建配置(Delphi IDE 中最后激活的构建配置)。
现在,我想通过命令行参数指定某个(非默认)构建配置。
Delphi帮助断言参数是[/p:configuration= <configuration name
>],这是错误的(Delphi 2009,Help Update 1)!
什么是正确的方法?
multithreading - TMonitor 同步/Application.ProcessMessages
我回来了另一个关于线程和同步的问题。想象一个服务器应用程序必须执行一个冗长的操作,而客户端希望他的 GUI 在等待服务器响应时保持响应。我想到了以下模式:
WorkerThread 是一个从 TThread 派生的简单类,它执行传递给其构造函数的函数,然后终止(Ready=True,结果在 Result 中)。每当单击按钮时,都会执行呈现的代码。
现在我的问题是:如果我非常快速地单击按钮两次,我会收到一些奇怪的错误,看起来很像服务器和客户端之间的通信以某种方式混淆,我想通过锁定 FTCPClient 对象来避免这种情况。Application.ProcessMessages 执行后的事件处理程序在哪个线程中?TMonitor 的锁是每个线程吗?这是否意味着如果我使用 Application.ProcessMessages 锁定不起作用?
我现在无法更好地解释它。我希望有人明白我的意思。如果没有,请随时提出问题。
编辑:对于按钮的禁用和启用:我对客户端代码一无所知。可能是按钮事件处理程序,也可能是其他东西。基本上我想隐藏客户端代码的锁定。
delphi - Delphi 2009 OnKeyDown 不像 Delphi 2007 那样陷入陷阱
我有这个代码
它在 Delphi 2007 上运行良好。当我升级到 Delphi 2009 并尝试按下它被接受的任何字母并且 Key := 0 不会捕获输入?
有人遇到过同样的行为吗?
delphi - Delphi 2009 中的 TShellListView 在哪里?
我们最近搬到了 Delphi 2009。我找不到 TShellListView 和 TShellTreeView 控件。我需要安装一些额外的东西吗?
从网上搜索,似乎它们是随 Delphi 2009 一起提供的,但由于某种原因,它们尚未安装。
有没有人遇到过类似的问题?
在这里回答
delphi - Delphi 2009 应用程序使用 Vista 的大图标
我想在我的 Delphi 2009 应用程序中使用 Vista 大图标功能,但我只能在我的应用程序中嵌入普通的 32x32 图标。如何使应用程序具有多种尺寸的图标?
谢谢
delphi - Delphi 泛型约束问题
我正在尝试创建一个通用列表类以用于 tiOPF(delphi @ www.tiopf.com 的对象持久性框架)。具体来说,我正在尝试采用现有的通用类(TtiObjectList)并制作一个使用 TtiObject 后代的通用版本。
我更改基类的范围有限,因为它们需要在 D7 - D2009 和 Free Pascal 下编译。我需要从 TtiObjectList 降级以保持现有的持久性机制正常工作。
我的班级定义如下:
我遇到的问题是 delphi 没有将 T 视为 TtiObject 后代。当我执行以下操作时,我收到了无效的类型转换错误:
如果我不进行类型转换,则会出现重载错误,如上面的清单所示。
有什么想法我哪里出错了吗?
肖恩