Delphi

为什么使用过程来创建优先于函数的对象?

这与这一点类似问题。我问“为什么?” 最受欢迎响应,但我不知道有人会再次看到它。至少没有及时的方式。 无论如何,我的问题是关于将对象创建到函数或过程的责任的最佳做法,而不会导致内存泄漏。似乎这样: procedure FillObject(MyObject:TMyObject; SomeParam:Integer); begin //数据库操作来填充对象 end; 程 ..
发布时间:2017-04-28 19:48:58 Delphi

Delphi - 相当于C#的三元运算符?

可能重复: 我明白,Delphi没有C#中的三元运算符。 即?: 那么最好的代表这个函数调用?那里最干净的方法是什么? 如果有任何代码可以使用INSTEAD编写单独的函数会很好吗?如果没有,最有效和最干净的代码代码是什么? 解决方案 当然可以使用 IfThen(SomeBooleanExpression,IfTrueReturnValue,IfFalseRetu ..
发布时间:2017-04-28 19:48:39 Delphi

delphi'string'文字怎么可能超过255?

我正在使用 delphi 7 ,我正在研究一个字符串,我遇到了这个 一个默认长度的字符串,即简单地表示为字符串,最大大小始终为255. ShortString不允许增长到超过255个字符。 delphi strings var sMyStringOF256characters:string; ilength:integer; begin sMyStringOF2 ..
发布时间:2017-04-28 19:48:27 Delphi

Delphi UUID生成器

Delphi有什么内置的东西来生成UUID? 解决方案 ; {$ APPTYPE CONSOLE} 使用 SysUtils; var Uid:TGuid; 结果:HResult; 开始 结果:= CreateGuid(Uid); if Result = S_OK then WriteLn(GuidToString(Uid)); 结束。 ..
发布时间:2017-04-28 19:48:03 Delphi

Firemonkey ScrollBox错误

我们遇到了Firemonkey的ScrollBox组件似乎是一个奇怪的错误(因为 TGrid 继承自 TScrollBox 它也影响所有网格)。在我们的开发机器上,一切都可以正常工作,而另一些则发生错误。我们没有检测到系统之间的任何模式(我们检查了操作系统,图形硬件,DirectX版本)。 复制: 创建一个新的FireMonkey应用程序。在表单上放置一个 TScrollBox 。 ..
发布时间:2017-04-28 19:47:51 Delphi

我想创建一个派生自TPanel的自定义控件,它包含一个图像和一堆其他控件。 编写代码后,我的程序中有一些奇怪的行为。我意识到在TDisplay.Resize(override)中应该初始化的一些变量从未被初始化,因为Resize从未被执行过。 为了“解决这个问题”,我在表单上放了一个按钮,并调用了LoadSample函数调用ClientHeight调用Resize FOR THE FIRS ..
发布时间:2017-04-28 19:47:38 Delphi

如何阻止indy中的未知客户端(Delphi)

我有一个公共服务器(配置为indy 10)。一些未知客户端正在发送数千个无内容消息,将服务器的CPU使用率更改为50%。我的服务器上没有防火墙,所以我试图用这个代码来阻止这些不明客户端: 这是一个可以使用Timer的功能: var i,j:integer; begin IX2:= IX2 + 1; SetLength(ClientIPs,IX2); ClientIP ..
发布时间:2017-04-28 19:47:14 Delphi

Delphi 2010:无法找到资源 - EResNotFound

根据此处的示例,这里和这里,我试图将SVN修订信息包含在项目。 svn信息调用的结果存储在 rev.txt (这是一个简单的ansi文件)。我的 revinfo.rc 如下所示: REV_TEXT TEXT rev.txt 我的项目如下所示: unit rev; 接口 使用 Windows,消息,SysUtils,变体,类,图形,控件,表单, 对话框,Std ..
发布时间:2017-04-28 19:47:02 Delphi

使用GetMem分配多维数组

如何使用GetMem和 PointerMath ?创建多维(2D,3D,4D) p> 解决方案 没有额外的变量,这是更好的。 code> var I,J:整数; A:PInteger; begin GetMem(A,10 * 10 * SizeOf(Integer)); 为I:= 0至10 - 1 do 为J:= 0至10 - 1 do PInte ..
发布时间:2017-04-28 19:46:50 Delphi

Delphi:将分配的帧显示给树视图的节点

我没有框架经验。 如何使用框架的树视图? 我需要在树视图的点头之间切换,并将所分配的帧显示到所选节点。 大大感谢帮助!!! 解决方案 如果节点的 Data 指针到一个框架或任何其他类型的对象,typecast指向它所持有的对象类型的指针。 下面的代码添加了两个框架('Frame2'和'Frame3'由IDE创建 - 非常像一个新窗体),作为TreeView的节点,并将所 ..
发布时间:2017-04-28 19:46:38 Delphi

使用Delphi在桌面上打印动态文本?

我已经在我们的云服务器上看到,桌面上有一些动态的打印文字,显示了多少内存可用,硬盘空间等。这不像窗口或小工具或任何东西,但不知何故直接画了在桌面上我该如何做到这一点?我只看过文字,但是如果我可以在桌面上绘制图形,那将是很好的。 这是我的意思的一个例子: 编辑: 由于某人对我所提问题的误解,请允许我澄清: p> 我不一定需要做这个现有工具的确切。其实我根本不想打印系统信息。我 ..
发布时间:2017-04-28 19:46:26 Delphi

比较时间值

我想要一个比较时间的方法,例如,如果Atime早于Btime发生的话,我会使用一个CompareTime函数,但是我使用这个函数的问题就是“粗体括号”中的内容(见下文)如果A发生在B的早一天(即使A晚于B 发生)。 如果A发生在当天晚于B (即使A发生在早于B 的早一天),则为更大的值。 解决方案 一个 TDateTime 值可以被认为包含两个不同的部分:日期部分和时间部分。 Compa ..
发布时间:2017-04-28 19:46:08 Delphi

Delphi ADO与Excel 2010或更新版本,与.RecordCount有关

我有一个例子,在这里我使用与ADO连接的excel文件,似乎可以与excel 2003文件,但是当我使用excel 2007或更新我收到一些问题接收记录计数.. 我的连接字符串看起来像这样为excel 2003: 格式('Provider = Microsoft.Jet.OLEDB .4.0;数据源=%s;扩展属性= Excel 8.0;',[filename]) 和e ..
发布时间:2017-04-28 19:45:56 Delphi

为什么模拟鼠标点击(使用mouse_event)只对选定的组件起作用?

我有多个光标(实际上是表单),可以通过它们各自的鼠标来控制。 (1个用户的光标) 我使用 SetCursorPos 定位默认游标(原始系统光标)处于不会从我的应用程序中移除焦点的位置,并使用 ShowCursor(false)隐藏它。 我有一个类可以获取鼠标的句柄和坐标。 当用户点击我使用 SetCursorPos 和 mouse_event 模拟该特定位置的点击。 我的模 ..
发布时间:2017-04-28 19:45:22 Delphi

将项目移动到dll中

我把我的项目移植到一个DLL中,在那里我宣布了一个这样的程序。 procedure StartApp; var myForm:TmyForm; begin myForm:= TmyForm.Create(Application); myForm.Show; 结束 导出StartApp; 我的主应用程序包含一个dpr文件,其中包含: pr ..
发布时间:2017-04-28 19:44:56 Delphi

从命令行启动的GUI应用程序如何写入StdOut?

我正在Delphi 7中编写一个标准的Windows应用程序。 如果我正在编写一个控制台应用程序,我可以调用以下命令输出到cmd行或输出文件。 writeln('Some info'); 如果我从我从标准的GUI应用程序这样做,我从命令行启动我得到一个错误。 I / O错误105 这个问题必须有一个简单的解决方案。基本上我希望我的应用有两 ..
发布时间:2017-04-28 19:44:44 Delphi

如何防止提示中断定时器

我以稍微不同的方式之前提到此问题。在那一刻,我不知道究竟是什么问题,直到我开始尝试从论坛得到的答案(感谢所有)。问题是这样的: 对于MIDI生成,我想要一个好的计时器。我现在有四个,但他们都被一个简单的提示打断了。我可以启动应用程序,执行大量的计算,无论如何。定时器功能无汗。一个提示会产生一个可听见的延迟。我尝试所有4个计时器,他们基本上表现出相同的行为。其中一些在最高优先级的线程中运行。 ..
发布时间:2017-04-28 19:44:30 Delphi

Delphi:TTcpServer,读取时重新连接

我正在为delphi实施一个 Fitnesse Slim server ,但是一些通信问题。 Fitnesse将开始我的进程,并给我一个端口号作为命令行参数。 然后我应该在给定的portnumber创建一个套接字,而Fitnesse将连接到该端口。 我正在使用TTcpServer作为工作: TcpServer1 .LocalPort:= ParamStr(ParamCou ..
发布时间:2017-04-28 19:39:09 Delphi

如何修改DBGrid中的所有者绘制异常?

继续该项目开始于: 如何根据其内容自动调整/缩放DBGrid(或其他类似的)列宽? 我使用@alzaimar答案根据自己的内容宽度自动匹配列,但他向我展示了如何增加宽度,但不显示如何减少,所以我补充了如上所示的代码: procedure TRecordsBrowserFrameBase.JvDBGrid2DrawColumnCell(Sender:TObject; const ..
发布时间:2017-04-28 19:38:57 Delphi