9得票2回答
如何避免在一个TForm中嵌入另一个TForm时出现问题?

我经常像这样将一个TForm的子类嵌入到另一个TForm的子类中: var Form1: TForm1; Form2: TForm2; begin Form2.Parent := Form1; Form2.BorderStyle := bsNone; Form2...

9得票1回答
Delphi 2007 - 如果设置"MainFormOnTaskBar := True",则系统范围的热键不是真正的“系统范围”

我有一个Delphi 2007项目,在Windows XP、Vista和“7”上运行良好多年。它是从Delphi 5升级而来的,因此“MainFormOnTaskBar”默认为“false”(我没有在DPR中更改它)。在这种情况下,系统范围的热键使用以下代码在主窗体的OnCreate事件处理程...

9得票2回答
如何高效地处理多个元素插入到数组中?

我有一个动态分配的整数数组,我想在任意位置插入多个整数,这些整数可能超过250万。 目前我的代码如下: type TIntegerArr = array of Integer; var FCount: Integer; FSortedList: TIntegerArr; p...

9得票2回答
如何将TPopupMenu排列起来,以便准确地将其定位在按钮上方?

我想让一个按钮上方弹出一个弹出菜单: Delphi 将 Win32 菜单系统包装起来,以一种方式似乎排除了每种模式或标志,这些模式或标志在底层 Win32 API 中提供,但不在 VCL 作者的大脑中。其中一个例子似乎是 TPM_BOTTOMALIGN,它可以传递到 TrackPopupMe...

9得票2回答
如何阻止Delphi IDE启动时打开表单

对于我在Stack Overflow上的第一个问题,我必须问您有关我在Delphi 2007中遇到的问题。 在我的项目启动时,IDE总是打开我的项目中一组表单。 例如,让我们看一个有50个表单的项目。每次我打开该项目时,IDE都会打开其中的一些表单(它们总是相同的)。我的问题是:是否有一个...

8得票2回答
Windows快捷方式是否支持非常长的参数长度?

我正在尝试创建一个包含长参数字符串(> MAX_PATH)的快捷方式(在桌面上)。 根据MSDN文档,对于Unicode字符串,该字符串可以比MAX_PATH更长。 生成的快捷方式会在MAX_PATH字符之后被截断(即Path和Arguments)。 我的实现有问题吗,还是这是Windo...

8得票1回答
如何在对象类型的过程的输入参数中传递nil值

我希望在一个声明为procedure of object的参数中传递一个空值。 考虑以下代码: 情况1 type TFooProc = procedure(Foo1, Foo2 : Integer) of object; procedure DoSomething(Param1:...

8得票2回答
Delphi 2007: 如何设置 TSAWARE?

在Delphi 2009及以上版本中,您可以在项目.dpr文件中添加以下行来设置应用程序可执行文件的TSAWARE PE标志: {$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE} 我曾经错误地认为Delphi ...

8得票1回答
当窗体被创建/恢复时,重叠的TCustomControl对象绘制顺序有误

我在 Delphi 2007 中遇到了使用 TCustomControl 实现透明度的问题。 我已经将问题简化为以下代码。 当创建窗体时,控件的绘制顺序与其添加到窗体中的顺序相反。 但是,当调整窗体大小后,它们按正确的顺序绘制。 我做错了什么? 除第三方解决方案之外,是否有更合适的方法可供选择...

8得票4回答
有时在Delphi中给常量赋值时会出现错误。

我正在使用安装了所有补丁和更新的Delphi 2007。 我有一个文件被两个不同的项目所使用。在这个文件中有一个过程,我将简化如下: procedure MyProcedure; const UniqueValue: integer = 0; begin //some code ...