问题标签 [delphi-6]

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

delphi - Windows 7上的Delphi 6存储过程

我使用 Delphi 6 和 SQL Server 2008。使用 Windows Vista 一切正常。但是由于我将操作系统更改为 Windows 7,所以当我尝试编译它们时,我的所有项目都开始显示一条消息,上面写着

服务器中未找到或不存在存储过程(SP 名称)。

我查看我的服务器,它具有正确名称的存储过程。我使用了 ODBC 连接并尝试了 SQL Server 和 SQL Native 客户端 10.0,但问题仍然存在。在我尝试运行存储过程之前,这些项目可以毫无问题地连接到数据库。如果我再次在 vista 中运行相同的项目,它们工作正常。如果你们中的任何人可以帮助我,我真的很感激.......

0 投票
3 回答
383 浏览

delphi - Delphi 6 - 多次编译时错误消失

在过去的几个月里,我的 Delphi 安装一直在走下坡路。似乎当我构建一个版本时,它经常会出现奇怪的错误,如果我构建,然后编译,然后构建,编译等,这些错误就会得到解决。

我与另一位认为这是编译器错误的开发人员交谈过。随着时间的推移,这种性能下降的情况也发生在我们的其他计算机上。

堆栈溢出认为可能是什么问题。

0 投票
4 回答
11149 浏览

windows - Delphi - 如何防止表单/消息框在先前的表单下移动?

在 Windows 98 时代之后,我们多次经历过一些对话框失去了它们的 Z-Order 并返回到以前的形式。

例如:

当MessageBox 出现时,它有时没有焦点,被移到Dialog1 下。用户对此感到困惑,他们说:我的应用程序冻结了!!!但如果他们使用 Alt+Tab 移动到另一个应用程序并返回,焦点将返回到 MessageBox,它将成为前台窗口。

我们在 ShowMessage、MessageBox、普通表单和 QuickReport 表单中都经历过这种情况。

有人知道吗?它是Windows错误吗?你怎么能防止它?如何抓住这个?

感谢您的帮助:dd


我真的说过,在Win98之后,所以所有的操作系​​统(Win7也是)都受到这个问题的影响。我们使用了 Delphi 6 Prof,因此这些属性不适用于默认表单。

有人说消息对话框可以用 MessageBox + MB_APPLMODAL 控制。这是个好消息,但我们有许多旧的表单和组件、第三方工具。

因此,通过表格替换来制作一个全新的应用程序是一项艰巨的工作。

但我们会尝试这样做。

我认为答案是一半是应用程序问题,一半是 Windows 问题。如果 Windows 有时会处理这个问题,有时不会 - 这似乎是一个 Windows 错误。但是如果我们可以强制制作好的模态窗口,那么它就是一个编程错误。

有人可以向我解释 WS_POPUP 标志的含义是什么吗?它有没有副作用?

谢谢:dd

0 投票
5 回答
7425 浏览

c# - Delphi - 是否有任何等同于 C# 锁的东西?

我正在用 Delphi 编写一个多线程应用程序,需要使用一些东西来保护共享资源。

在 C# 中,我会使用“lock”关键字:

在 Delphi 中我找不到任何类似的东西,我只找到了 TThread.Synchronize(someMethod) 方法,它通过在主 VCL 线程中调用 someMethod 来防止潜在的冲突,但这并不是我想要做的......

编辑:我正在使用 Delphi 6

0 投票
8 回答
17167 浏览

delphi - Delphi 中公共和已发布的类成员有什么区别?

请有人能解释一下 Delphi 中公共和已发布的班级成员有什么区别吗?

我试图查看 Delphi 帮助,我知道这些成员具有相同的可见性,但我不太了解它们有何不同以及何时应该使用已发布成员而不是公共成员。

非常感谢。

0 投票
1 回答
2482 浏览

sql-server - 使用 Delphi 6 从 SQL Server 读取 unicode 字符串

我需要nvarchar(max)使用 Delphi 6 和 ADO 从 SQL Server 2008 数据库中读取一个字段。我可以很好地处理 unicode 文本,但似乎 ADO 组件在我查看它之前就将字符串“预转换”为代码页。

我尝试将该字段作为 TBlobField 访问,但它也给了我转换后的版本:我正在存储代表 5 个汉字的 10 个字节的数据,并且 BlobSize 返回 5。

任何人都可以建议一种方法来从 blob 字段中获取原始内存而不对其进行转换吗?

0 投票
3 回答
2545 浏览

delphi - 关闭表单并打开另一个实例后,“表单已存在”。德尔福

我一直遇到这个奇怪的问题。它几乎似乎是随机的,但我运行我的应用程序并打开一个表单,对其进行一些处理并关闭它。下次我打开该表单的另一个实例时,我会收到有关该表单已存在的错误消息。这很奇怪,我无法不断重现错误。

如果有帮助,我仍在使用 Delphi 6。是否有一些已知的原因导致这种情况发生,或者我能做些什么来防止它?

0 投票
1 回答
910 浏览

delphi - Delphi 6 中的代码语法高亮(突出语法和 ifdef 块)

我知道,Delphi 6 已经很老了。不幸的是,有一些我不想在这里讨论的无法升级的原因。

我的问题是很难阅读代码。我有 Castalia 插件,它有点帮助(括号匹配,显示 if、else、end 的块),但它不像其他 IDE 那样突出显示不同颜色的语法(变量、常量、过程等)。它也没有显示有时会非常混乱的 IFDEF 块。

对于 Delphi 6,哪些插件可以完成部分或全部这些功能?

0 投票
5 回答
2866 浏览

delphi - Delphi - 应用程序退出时未释放(但终止)的线程会发生什么?

我有多线程应用程序,当应用程序结束时我遇到了一个小问题:我可以通过调用事件处理程序中的方法正确终止线程TThread.TerminateForm1.OnDestroy但终止确实需要一些时间,所以我无法释放内存(通过TThread.Free方法)。不幸的是,由于某些其他原因,我必须将TThread.FreeOnTerminate属性设置为 false,因此线程对象不会在线程终止后自动销毁。

我的问题可能有点傻,我早就应该知道了,但是这样可以吗,线程会自动销毁(因为应用程序刚刚结束),还是有问题,内存会“丢失” ? 非常感谢您的解释。

0 投票
2 回答
1084 浏览

delphi - 在调用 FreeMem (Delphi 32) 之前检查是否分配了内存

我一直在以某种方式释放对象的地方遇到错误,但我们最终在它们上调用 FreeMem。当然,这会导致错误,因为内存已被释放并引发错误。

我知道 try-catch 块可能会修复它,但这是很多 try-catch 块。使用常规 object.free 避免这种情况的方法是 FreeAndNil(object) 但我找不到 FreeMem 的等价物。在释放之前测试它是否被分配的东西。

在易于阅读、可维护性和稳定性方面,这里最好的解决方案是什么。