14得票1回答
如何将表单复制为图像到剪贴板

我需要将一个表单(Delphi 2007)复制到剪贴板中作为图像,以便将用户所见内容粘贴到Word文档中。剪贴板部分并不是真正的问题,问题在于如何获取表单的位图。 搜索结果显示有多种选择: 调用 GetFormImage 方法。 使用 GDI+ 中的 PrintWindow API 函数...

7得票1回答
是否有可用的数据感知选项卡控件?

数据感知控件可以链接到数据集,以显示当前行中字段中包含的数据,或者在某些情况下,来自多行中一个或多个列的数据。TTabControl让您以易于理解的方式将相同的控件应用于不同的数据值集。 看起来它们很适合一起使用。TTabControl可以成为一个很好的数据感知控件(将其链接到数据集中的标识...

7得票3回答
我应该总是使用"TList<String>"而不是"String数组"吗?

我一直在迁移一个使用Delphi 7开发的项目,并且每次查看代码时,之前的开发人员都会创建类似以下代码的集合: ArrayOfString : array of string; ArrayOfInteger: array of integer; ArrayOfStringArrays : a...

12得票1回答
泛型无法正确解析方法类型

请看以下内容: 考虑以下问题: {$APPTYPE CONSOLE} uses Generics.Collections; type TObjProc = procedure of object; TFoo = class public procedure DoFo...

9得票2回答
有没有一种方法可以使Delphi VCL表单可调整大小,而不改变边框样式?

我刚刚花了相当长的时间尝试通过GExperts使Delphi 6/7 IDE的Tools/Environment Options对话框可调整大小。一切似乎都很顺利,直到我发现将表单的BorderStyle更改为bsSizable会关闭并重新创建表单的句柄,在此过程中丢失了调色板配置列表框的内容...

14得票2回答
如何在Delphi EXE中加密或隐藏字符串?

我目前正在使用Delphi开发一个应用程序,在其中必须隐藏(混淆)源代码中的字符串,例如str := '示例字符串'。 为什么?因为如果我在文本编辑器中打开EXE并搜索示例字符串,我会在第二个位置找到该字符串... 我尝试使用基本的十六进制编码,例如#$65#$78#$61#$6d#$70#...

16得票2回答
一个正确的销毁TThread对象的方法

这个问题可能看起来很琐碎,但我希望你不要忽视它。 在销毁TThread对象之前,通常需要等待调用TThread.Execute()方法的线程结束,只有这样我们才能确定在类的析构函数中销毁的对象不再被访问。因此,需要调用Terminate来设置Terminated标志,让线程检查是否退出,然后调...

7得票1回答
Delphi中关于过程的引用存在问题

在Delphi中,您显然可以将整个方法调用链分配给单个变量: program What; {$APPTYPE CONSOLE} type TProc = reference to procedure(); TRecord = record procedure Method...

18得票4回答
是否可以从Vista Shell获取48x48或64x64的图标?

如果Vista Shell中存在48x48或64x64的图标,如何使用SHGetFileInfo获取一个用于在TImage中显示的句柄? 我想从图像列表中选择代表文件夹路径的图标,并在TImage中显示一个48x48或64x64的图标。// load the large system ima...

11得票3回答
基于无约束泛型类型创建对象实例

我有一个不受限制的通用类型Atomic,它实现了一个初始化器(详见我之前的问题)。 type Atomic&lt;T&gt; = class type TFactory = reference to function: T; class function Initiali...