Delphi

当BOM(字节订单标记)丢失时,如何最好地猜测编码?

我的程序必须读取使用各种编码的文件。它们可以是ANSI,UTF-8或UTF-16(大或小端)。 当BOM(字节订单标记)在那里时,我没有问题。我知道文件是UTF-8还是UTF-16 BE或LE。 当没有BOM时,我想假设文件是​​ANSI。但是我发现我正在处理的文件常常丢失了BOM。因此,没有BOM可能意味着文件是ANSI,UTF-8,UTF-16 BE或LE。 当文件没有BOM ..
发布时间:2017-04-23 11:46:21 Delphi

Delphi - 移动重叠的T形

我需要自己的三角形形状,所以我继承了我的三角形类TShape并覆盖绘画方法。一切都很好,但是我需要用鼠标移动这个形状。我为MouseDown事件中的每个形状处理设置了方法。移动工作也很好。但是,如果两个形状重叠(形状实际上是具有一些透明区域的矩形),则顶部的形状透明区域超过另一个形状,则顶部形状移动而不是下面的形状。这是正确的,那就是德尔福的工作原理。但是用户不直观。我该如何实现呢?有没有可能从事 ..
发布时间:2017-04-23 11:45:50 Delphi

我可以做些什么来减少可执行文件的大小(Delphi)?

我发布了一个使用Delphi 2009的桌面程序的单一可执行文件(.EXE)。我没有外部DLL或资源,我需要该程序运行。 我使用两个组件: LMD Innovative的ELPack 和 Sergey Tkachenko的TRichView 被编译成我的可执行文件。 当我构建我的生产版本,使用“释放”构建配置,生成的可执行文件为13,533 KB。 在使用Delphi 2009之 ..
发布时间:2017-04-23 11:45:39 Delphi

Delphi XE2 VCL风格教程 - 如何在运行时更改样式

解决方案 有没有一个很好的VCL样式教程,我们看到如何动态(运行时)加载/更改样式? p>我正在添加一个答案,因为本地信息通常只适用于链接。 这是您开始之前需要了解的关键事实: 许多VCL控件都有颜色属性,但是当样式打开时,这些属性将被忽略,默认的“常用控件”将被Delphi自己绘制,而不是使用“Windows附带的XP或Windows 2000”风格。 不知何故,深深的在您的 ..
发布时间:2017-04-23 11:45:27 Delphi

如何在不处理Windows消息的情况下允许表单接受文件丢弃?

解决方案在Delphi XE中,我可以允许我的表单接受文件'拖放' 您不需要处理消息来实现这一点。您只需要实现 IDropTarget 并调用 RegisterDragDrop / RevokeDragDrop 。真的很简单您可以在表单代码中实际实现 IDropTarget ,但我更愿意在类似于此的帮助类中执行此操作: 使用 Winapi.Windows, Winapi.ActiveX ..
发布时间:2017-04-23 11:44:49 Delphi

旋转位图。在代码中

有没有比使用倒置坐标的简单的嵌套循环更快地将大型位图旋转90或270度的方法?位图是8bpp,通常是2048 * 2400 * 8bpp 目前,我通过简单地使用参数反转复制(粗体代码: 对于y = 0到2048-1 dest [x] [y] = src [$] $ x $ $ $ $ $ $ $ $ $ $ $ $ y] [x]; (实际上我用指针,但是大致相同的大小) GD ..
发布时间:2017-04-23 11:44:25 Delphi

TThreadedQueue不能多个消费者?

尝试在单个生产者多用户方案中使用TThreadedQueue(Genericics.Collections)。 (Delphi-XE)。 想法是将对象推入一个队列,并让几个工作线程排出队列。 尽管如此,它不会按预期工作。 当两个或更多工作线程正在调用PopItem时,从TThreadedQueue抛出访问冲突。 如果对PopItem的调用序列化为关键部分,则所有很好, 当然, ..
发布时间:2017-04-23 11:44:14 Delphi

系统错误。代码:8.没有足够的存储来处理这个命令

我们有几个Win32应用程序(在Delphi 2006中编码),其中有时用户会收到一条错误消息,说“系统错误”。代码:8.没有足够的存储可用于处理此命令。“ 从stacktrace看起来它总是在CreateWnd调用 主($ 1edc): 004146cc +070 app.exe SysUtils RaiseLastOSError 00414655 +005 app.exe S ..
发布时间:2017-04-23 11:44:01 Delphi

ORM为DELPHI win32

有没有人知道一个ORM或类似于Delphi Win32的东西。 解决方案 Marco Cantu是InstantObjects中的一个大信徒: http://www.instantobjects.org/ 其他包括DObject: http://www.macrobject.com/en/dobject/ 和tiOPF http://tiopf.sourcef ..
发布时间:2017-04-23 11:43:37 Delphi

防毒软件在我的可执行文件中为false

我刚遇到一个烦人的问题。突然, Avira AntiVir 开始将一个可执行文件从我的软件标记为病毒。 由于几乎任何用户的默认操作都是单击“确定”,Avira建议将隔离中的病毒放在“我的大部分用户正在删除”这个可执行文件。 嗯,让我们不要傲慢,检查我是否没有感染。我将该文件发布到 http://www.virustotal.com ,并且所有防病毒只有Avira将其标记为感染。此外,我 ..
发布时间:2017-04-23 11:41:39 Delphi

免注册COM / DLL?

我的程序正在使用Skype4COM.dll(Skype API的包装器)。 我正在使用Delphi 2010 - 有没有办法确保我的程序总是使用我将发货的Skype4COM.dll?事实是,有不同版本的Skype4COM,如果我注册我的一个人,他们的应用程序可能不再工作。 通常我使用RegSvr32注册DLL对于人民制度,但我听说有可能使其无注册(在C#中),所以我的问题是:我们可以在 ..
发布时间:2017-04-23 11:40:03 Delphi

Windows视觉主题:零件和国家的画廊?

Microsoft Windows允许程序员使用 DrawThemeBackground 和 DrawThemeText 。元素由Class,Part和State指定,如 零件和状态 页面。 不幸的是,页面不是很丰富(在所有!)。所以问题是:有没有一个参考的所有这些部分和状态,最好与图像的元素(在默认的Windows Vista / 7主题)? 解决方案 我已经创建了一个小型的Win ..
发布时间:2017-04-23 11:37:45 Delphi

Delphi应用程序与登录/注销 - 如何实现?

应用程序有一个登录表单和一个主窗体。 应用程序DPR文件首先加载登录表单,当登录表单返回成功登录时,然后主窗体创建并加载。 当用户通过主窗体中的菜单命令注销时,应关闭主窗体并加载登录表单。 只有当用户选择主窗体中的退出(或用户从登录表单中取消)时,应用程序才会退出。 在应用程序的DPR文件中使用代码,是否可以编码? 以下是目前存在的代码: 程序H; 使用 ..
发布时间:2017-04-23 11:36:39 Delphi

Delphi代码格式化程序

有没有任何公用程式重新格式化Delphi代码? 编辑 我正在使用Delphi 2006 一些反馈 感谢所有回答这个问题 我一直在使用JCF代码格式化程序 - 它工作得很好,我的代码已经形成为 解决方案 您可以尝试“绝地代码格式”。在这里查看更多信息: http://jedicodeformat.sourceforge.net/ DelForExp的格式化 ..
发布时间:2017-04-23 11:36:26 Delphi

哪个日志库更好?

我在想,你喜欢哪个Delphi的日志库? CodeSite SmartInspect Log4Delphi TraceFormat 如果您使用多个,请尝试添加一个理由,以便您更喜欢一个。 我会为此问题添加建议以保持 解决方案 SmartInspect 非常有用。这是我唯一使用过的。日志记录库是好的,但是控制台和远程TCP / IP日志记录将在顶部。我认为CodeSi ..
发布时间:2017-04-23 11:36:07 Delphi

推荐使用Delphi的Web应用程序框架?

在Delphi(Win32)的 Web应用程序框架中已经有一些活动。有很多新的项目,我很想看到他们的功能(代码和文档质量,单元测试覆盖,易于安装,最小的Delphi版本,安全性,会话管理,数据库访问,URL映射,模板系统的概述描述,MVC,Ajax,配置...)。 框架(按字母顺序排列) Delphi on Rails - D2010 DelphiMVCFramework - 适用于 ..
发布时间:2017-04-23 11:35:14 Delphi

为什么我不应该使用“with”在德尔福?

我听说过很多程序员,特别是Delphi程序员鄙视使用'with'。 我以为它使程序运行速度更快(只有一个对父对象的引用),而且如果使用明智的话,读取代码更容易(少于十几行代码没有嵌套)。 这里有一个例子: 程序TBitmap32 .FillRectS(const ARect:TRect; Value:TColor32); 开始 与ARect do FillRectS(左,上,右 ..
发布时间:2017-04-23 11:34:53 Delphi