Delphi

任何方式来猜测Delphi XE2上的mime类型?

我需要猜测mime类型,目的是为了某些文件上传填写“Content-Type”标题。 我没有找到解决方案 我想打电话给: GetMimeType('C:File.jpg') code> image / jpg 。 最佳如果是多平台(对于win / osx),但只有适用于Windows才能使用。 解决方案 Internet Direct(Indy)包含一个类: cla ..
发布时间:2017-04-28 20:00:48 Delphi

是否值得缓存Delphi内存管理器创建的对象?

我有一个创建和销毁成千上万个对象的应用程序。是否值得缓存和重用对象,或者Delphi的内存管理器足够快,多次创建和销毁对象并不是一件很大的开销(而不是跟踪缓存)当我说值得的时候,当然我正在寻找 解决方案 从最近的测试 - 如果对象创建不昂贵(即不依赖于外部资源)访问文件,注册表,数据库...),那么你将很难打Delphi的内存管理器。这很快。 当然,如果您使用的是最近的Delphi, ..
发布时间:2017-04-28 20:00:23 Delphi

有没有办法将2个阵列添加到一个?

有没有一个简单的统一的方法来添加2个数组到一个?在下面的情况下,不可能简单地使用 C:= A + B 语句... 我想避免每次都使用它。 p> TPerson = record 生日:Tdate; 名称,姓氏:字符串; 结束 Tpeople = TPerson的数组; var A,B,C:Tpeople; C:= A + B; //不可能 t ..
发布时间:2017-04-28 20:00:11 Delphi

在Delphi中如何通过引用传递数组?

我已经阅读了关于通过引用的传递,所以 procedure test(var x:integer); begin x:= x + 5; 结束 所以上面的代码通过引用更新5。我假设如果我通过引用更新数组,我可以声明 var X:数组blah ...有一些绑定的错误,只是想知道我是否应该使用数据类型的指针数据或如果指针总是int ...所以我知道如果我是如何做我的传递 ..
发布时间:2017-04-28 19:59:58 Delphi

有没有检测重复接口GUID的工具?

这是一个典型的复制粘贴错误: 如果包含GUID的接口声明的Delphi代码被复制粘贴,Delphi将不会抱怨并编译代码 - 在不同的地方使用相同的GUID。 “支持”功能适用于基于GUID的界面,因此可能会出错。 是否有可以检测到“质量保证”工具(Peganza或Delphi Sonar插件)? 解决方案 只适用于最新版本的Delphi。您可以使用以下代码在运行时检测到这 ..
发布时间:2017-04-28 19:59:45 Delphi

Windows EventLog:操作速度有多快?

我有一个服务应用程序,通过TCP处理客户端请求并将任何事件写入Windows EventLog。由于这个应用程序预计将在短时间内为每个客户端提供许多客户端和大量请求(比如每秒1到50个请求之间),我很好奇地知道如何密集(CPU智能和时间智能)和写入Windows EventLog的速度有多快? 更具体来说,连接,阅读和写入EventLog的操作有多密集? 解决方案 我使用我的2个事件 ..
发布时间:2017-04-28 19:59:04 Delphi

Delphi 2007中的HelpInsight文档

我正在使用D2007,并尝试使用HelpInsight功能(自D2005以来提供)来记录我的源代码。我主要感兴趣的是帮助工具提示工作。从各种网络冲浪和实验中我发现了以下内容: 使用三斜杠(///)其他记录的注释样式。即: {*!评论*} 和 {!评论} 评论必须在声明之前。在大多数情况下,这意味着将它们放在代码的接口部分。 (显而易见的例外是不能从当前单元外部访问的类型和函数,因此在实现块 ..
发布时间:2017-04-28 19:58:52 Delphi

Delphi的Sharemem - 不需要时

我知道,当我在Delphi APP和Delphi DLL之间共享 string 时,我需要添加 Sharemem 应用程序和dll项目源都是use子句中的第一个单元。 但是,如果dll导出仅接受 Pchars 但在一些dll方法里面我使用 string ,我应该使用sharemem吗?让我看看一个示例代码: procedure ShowMyCustomMessage(aMessage ..
发布时间:2017-04-28 19:58:39 Delphi

启用Delphi XE RTTI仅适用于某些类

原因是对于那些我想要RTTI的类,我想要RTTI在公共方法上,但是如果在项目范围内启用,那么所有类的所有公共方法都可以进入最终的可执行文件。 这基本上关闭了智能链接,因为编译器认为每个公共方法都可以在运行时被调用,因此最终可以编译几乎所有的东西,厨房可以进入可执行文件... 我尝试了几件事: 使用 {$ RTTI EXPLICIT METHODS([])PROPERTIES([])F ..
发布时间:2017-04-28 19:58:27 Delphi

RTTI在设计时可以从项目代码询问类型吗?

我想使用RTTI在设计时而不是运行时检查项目源文件中包含的类型。 据我所知,这是不受支持的,但是此问题的评论中的讨论表明,这是可能的,并且已经适用于多个Delphi版本。这是我第一次听说这个功能是可用的,而且我一直无法为自己重现。 这是我的测试示例。它使用一个简单的 TListBox descendant TMyListBox 其中有一个字符串属性 TypeToExplore 当设置时 ..
发布时间:2017-04-28 19:58:00 Delphi

有没有办法获取容器控件上的所有控件?

我有一个表单上有一堆控件,我想在某个面板上遍历所有控件,并启用/禁用它们。 我试过这个: var component:TComponent; begin for myPanel中的组件 (组件作为TControl).Enabled:= Value; 结束 但这没有做。原来所有组件都在窗体的组件集合中,而不是它们的父对象。所以有人知道是否有任何方法可以控制所有 ..
发布时间:2017-04-28 19:57:48 Delphi

欢迎页面浏览器如何从OTA包向导中导航到一些URI?

我想要做的是创建一个查看(不编辑)包含在项目中的HTML页面的功能。欢迎页面已经嵌入了网络浏览器,所以似乎是一个很好的候选人。 Curios为什么?这是一个具有背景的问题信息。 解决方案 如果您愿意使用这样的黑客: 键入 TOpenNewURLModule = procedure(const URL:string; EditorForm:TCustomForm); 程序 ..
发布时间:2017-04-28 19:57:03 Delphi

DUnit:如何运行测试?

我如何从IDE运行 TestCase ? 我创建了一个新的项目,单一简单的形式: unit Unit1; 接口 使用 Windows,消息,SysUtils,类,图形,控件,表单,对话框, StdCtrls; type TForm1 = class(TForm) private public end; var Form1:TForm1; ..
发布时间:2017-04-28 19:56:49 Delphi

在Delphi中记录方法和常量参数

$ p “records-with-methods” p>以前没有尝试滥用 const 惯例,我有点惊讶于 找到编译器接受的代码: type TTest = record Field:String; 程序更新; 结束 程序TTest.Update; begin Field:= Field +'+1'; 结束 程序DoStuff(const t:TTes ..
发布时间:2017-04-28 19:56:37 Delphi

Delphi:如何检查文件是否存在(路径超过255个字符)

我需要使我的delphi应用程序能够检查当路径超过255个字符时,使用Robocopy复制的文件是否存在。 我已经尝试了通常的“If FileExists(MyFile)then ...”,但它总是返回“false”,即使文件在那里。 我也试图获取文件的日期,但我得到1899/12/30这可以被认为是一个空的日期。 文件搜索也不返回任何东西。 p> 解决方案 使用 \\?\ ..
发布时间:2017-04-28 19:55:53 Delphi

在单个应用程序中调用多个线程的dll函数是否安全?

我正在Delphi 2009中编写一个服务器应用程序,它实现了几种类型的身份验证。每个身份验证方法都存储在单独的dll中。第一次使用验证方法,加载相应的dll。该应用程序关闭时才会释放该DLL。 在服务器线程(连接)之间没有任何形式的同步访问dll是否安全? 解决方案 简答: 可能从多个线程调用DLL函数,因为每个线程都有自己的堆栈,并且调用一个DLL函数或多或少与调用自己的代 ..
发布时间:2017-04-28 19:55:41 Delphi

更改复选框状态,而不调用OnClick事件

我想知道如何更改CheckBox的状态 CheckBox-> Checked = false; 它调用CheckBoxOnClick Event,如何避免? 解决方案 您可以围绕onClick事件代码,如 if myFlag那么 begin ...事件代码... end; 如果您不希望执行,请将myFlag设置为false,并 ..
发布时间:2017-04-28 19:55:28 Delphi

如何使信号NaN容易使用?

IEEE754标准定义了两类NaN,安静的NaN,QNaN和信号NaN,SNaN。当SNaN加载到浮点寄存器中时,浮点单元会产生异常。 QNaN通过名为 Math 中声明的c> NaN 。该常量的定义是: const NaN = 0.0 / 0.0; 我想要使用类似的东西来声明一个常数,这是一个信号NaN,但是还没有找到一种办法。 你可以写这段代码: ..
发布时间:2017-04-28 19:55:15 Delphi