Delphi

日志文件监视器

是否可以打开一个文本文件并读取内容,而另一个应用程序正在更新该文件,使其不会导致锁冲突? 我需要从一个应用程序监视日志文件,每次事件发生时由另一个应用程序更新。 我在检查文件是否正在使用中,但是在所有情况下似乎都不起作用。 谢谢Pieter 解决方案 这取决于第一个应用程序如何打开该文件。 ie when调用CreateFile API来打开一个文件,有dwShar ..
发布时间:2017-04-28 21:38:35 Delphi

Delphi XE2中的TDataModule.ClassGroup伪属性是做什么的?

我试图在Delphi XE2中将组件从一个数据模块复制并粘贴到另一个数据模块中。该组件是一个快速报告数据源链接组件。数据模块是全新的,刚刚在XE2中创建了第二个。 其他人也有同样的问题,并在质量中心为106369 和同样的错误信息导致我这个神秘的DocWiki条目 所以数据模块现在有一个框架关联性,一个设计时间的伪属性,根据文档: “因为ClassGroup伪属性仅由IDE使用, ..
发布时间:2017-04-28 21:38:23 Delphi

如何读取注册表项的默认值

我有一个Delphi XE2项目使用注册表项工作。所以我定义了以下代码: 程序TMainForm.BitBtn01Click(发件人:TObject); var RegistryEntry:TRegistry; begin RegistryEntry:= TRegistry.Create(KEY_READ或KEY_WOW64_64KEY); RegistryEntry.R ..
发布时间:2017-04-28 21:37:34 Delphi

我可以检测到窗口是否部分隐藏?

是否可以检测到我的程序外的窗口是否1)完全可见,2)部分隐藏,或3)完全隐藏?如果窗口(基于检索的句柄)不可见,我想要能够告诉我的应用程序不做任何事情。我不在乎窗口是否有焦点,什么是z顺序,还是其他任何东西,我只是感兴趣的窗口显示多少。如果我需要别的东西来取得这个,我没事,可以吗?谢谢。 解决方案 Raymond Chen写了几篇关于这个的文章。 它的要点可以使用 GetClipBo ..
发布时间:2017-04-28 21:37:22 Delphi

如何在Delphi应用程序中分析过多的内存消耗(PageFileUsage)?

这是对这个问题的后续行动:可以解释FastMM或GetProcessMemoryInfo报告的内存使用的差异? > 我的Delphi XE应用程序正在使用非常大量的内存,有时会导致内存不足的异常。我正在努力了解为什么会导致这种内存使用,而FastMM在报告低内存使用时,请求TProcessMemoryCounters.PageFileUsage我可以清楚地看到应用程序使用了大量内存。 ..
发布时间:2017-04-28 21:37:09 Delphi

在Delphi中更好的多线程调试

从答案引导到关于Delphi IDE中的错误的另一个问题,有谁知道是否有办法改进IDE的多线程调试功能,否则,至少为什么它是如此糟糕场合? 当程序中有多个线程时,通过F7或F8的代码通常会导致很长的暂停,或者整个IDE只是锁定。当您离开或输入方法或程序时,这一点尤其明显。调试器对于单线程应用程序总是好的。 PS。我使用的版本是2007年 解决方案 从我的经验来看,使用Vista ..
发布时间:2017-04-28 21:35:51 Delphi

Delphi 7,将PNG加载到TImage

只需要加载一个.PNG,尝试使用与其他格式一起使用的OleGraphic的LoadPic(),但是在PNG上失败。 目标是将图像复制到隐藏的位图,然后将其屏蔽并复制到可见的工作图像画布。如果CopyRect不这样做,请随意提出其他建议。 但主要问题:加载PNG。怎么样?我找到了很多页面(f.ex.TPNGImage),但是网络上的所有资源和链接都已经死了,已经或不可下载。 解决方 ..
发布时间:2017-04-28 21:35:26 Delphi

是否可以在滚动条上绘制?

是否可以在TMemo,TListbox等标准控件的滚动条上绘制? 我需要的是在滚动条上绘制一些基本的形状,我试图避免从stratch中实现整个滚动的东西。任何指针? TIA! 解决方案 确实有可能,你可能想看看 WM_NCPAINT 消息,这是非客户区对应版本的 WM_PAINT 消息。这不是一件容易的事情,但是由于你不会自己做整个滚动条,所以可能会更加直观。 此外,您可能会发 ..
发布时间:2017-04-28 21:32:37 Delphi

逐帧创建运动JPEG帧率可变

我正在分析一些我手头存在的问题的解决方案:我正在从设备接收图像,我需要从中创建一个视频文件。然而,图像到达之间有一些随机的延迟,我正在寻找最好的方法来编码这个。我必须逐帧创建这个视频,并且在每一帧之后,我必须有一个新的视频文件与新的帧,替换旧的视频文件。 我在想将帧速率固定在比我可能得到的最小延迟稍微“更快”,并重复最后一帧,直到新的帧到达,但我猜这个解决方案不是最优的。 此外,这个项 ..
发布时间:2017-04-28 21:32:09 Delphi

创建特定的自定义TListBoxItem与给定的例子和与fontColor属性的麻烦

有人可以指导我正确的方向。我正在尝试使用Delphi XE4为iOS应用程序创建一个Custom ListboxItem。我的目标输出将是上面照片的一部分,在那里我正在卡在这里(下图)。 我已经成功地动态生成ListBoxItem并插入了一个TLabel对象,但是我无法将TLabel的“fontColor”属性更改为所需的颜色。我可以编码 TLabel.Fontcolor:= ClaB ..
发布时间:2017-04-28 21:31:34 Delphi

单元测试鼠标事件处理程序

单元测试组件时,出现以下问题: 有许多与鼠标有关的事件处理程序。我看到两种可能性来测试这些处理程序: 使用Windows API调用模拟鼠标事件 使用受保护的黑客访问受保护的事件处理程序,并直接调用它们。 / li> 我知道单元测试通常限于类的接口(这也意味着测试不必在类内部变化),但这种情况是值得例外吗? 在单元测试组件时,通常如何处理鼠标事件? 解决方案 我个 ..
发布时间:2017-04-28 21:30:48 Delphi

(发件人:TObject)

(Sender:TObject)是什么意思? 如下: procedure TForm1.Button1Click(Sender:TObject); var s:整数; 开始 ..... ..... end; 解决方案 发件人是引发事件的组件的引用。在这种情况下,Sender将成为用户单击Button1Click事件的按钮。 当您有几个 ..
发布时间:2017-04-28 21:30:11 Delphi

如何使用Delphi中的dbExpress将参数传递给查询

我想使用dbExpress TSQLQuery组件。但是我不知道如何写SQL来添加一个参数。我会举一个例子,也许会更清楚我的问题是什么。 在TADOQuery中,以下工作: SELECT * FROM sometable WHERE sometable.id =:value; 现在在上面的例子中,使用参数前的冒号(:)将参数传递给查询名称。但是当我尝试使用T ..
发布时间:2017-04-28 21:29:46 Delphi

德尔福和一个单位完成

我有两个单位unitA和unitB。 TFU在unitB中声明。 是否可以安全地调用B.Free完成unitA? 如何依赖于在dpr中unitA和unitB的顺序? 在执行unitA定稿时,我可以确定unitB是否存在? unit unitB; 接口 type TFoo = class // code ... end; // code .... ..
发布时间:2017-04-28 21:29:31 Delphi

如何禁用Delphi中的所有异常提升?

是否有一种方法可以在发生异常或错误时禁用所有对话框(如访问冲突,插入错误,超时等)?它们有时会在我的程序中抛出,但这些错误并不是以任何方式致命的,可以忽略,只是对话框令人不安。我使用Delphi 7。 解决方案 如果你不要显示异常窗口,那么转到: 工具/选项/调试器选项/语言异常 ,并禁用复选框 语言异常通知 。那就是Delphi 2010的walid。 (我不记得如果它是De ..
发布时间:2017-04-28 21:26:57 Delphi

无法在动态创建的TBitmap上绘制GIF

我想提取GIF图像的帧。下面的代码工作,但这不是我需要的。我需要将提取的帧保留在一系列位图中。 procedure TForm1.Button2Click(Sender:TObject); var GIF:TGIFImage; 位图:TBitmap; I:整数; GR:TGIFRenderer; R:TRect; begin GIF:= TGIFImage.C ..
发布时间:2017-04-28 21:26:23 Delphi

Delphi是否为表单创建通知提供事件处理程序?

Delphi为表单创建提供某种事件或钩子(或者更常见的是生成周期事件)? 所以如果代码中的某个表单是创建并显示(模态或非模态,动态地或在通常的应用程序starup阶段),Delphi调用一个事件处理程序,允许在显示之前记录/分析/修改表单? 我知道有一些选项涉及引入一个基础表单类或一个自定义表单创建过程,但对于已经有很多形式的现有应用程序来说,这将是“很好的”非侵入式选项来添加类似的东 ..
发布时间:2017-04-28 21:25:40 Delphi