Delphi

使用RC.EXE或BRCC32.EXE,包含文件的行为不同,以构建* .rc文件

我希望在我的Delphi项目的RC文件中使用dot(。)作为资源条目。但是,Delphi的BRCC32.exe在资源命名中不允许使用dot(。)。自Delphi 2010以来,我们可以在 项目中指定“使用资源编译器”选项|资源编译器 切换到支持点命名的RC.exe(Windows SDK资源编译器) / p> 使用RC.exe作为资源编译器,可以为点号命名。但是,我 ..
发布时间:2017-04-28 19:00:11 Delphi

如何绘制“不”彩色文字?

我正在寻找一种用反转颜色绘制文字的方式。 对于形状,我们可以将 TPenMode 设置为 pmNot ,但是我们不能这样做为文本。 解决方案 这样做: 程序DrawTextNOT(const hDC:HDC; const Font:TFont; const Text:string; const X,Y:integer); begin with TBitmap.Create ..
发布时间:2017-04-28 18:59:30 Delphi

如何从应用程序处理文件关联?

我知道安装程序可以在安装过程中为应用程序设置文件关联,因此,如果您有自己的应用程序打开的文件类型,将进行设置,同时关联的文件也将有自己的图标在Windows中您定义的内容。 无论如何,我希望能够直接从我的应用程序中的首选项表单设置/删除我的应用程序将使用的文件类型。 需要哪些方法来做到这一点,我正在考虑到注册表的路线,但是我们正在使用什么键/值等,如果注册表是方式去? 欣赏一些建 ..
发布时间:2017-04-28 18:58:57 Delphi

如何使delphi应用程序国际化

可能重复: 翻译应用程序 使用delphi xe2编写我的应用程序国际化的最佳方式是什么? 我看过 stringtable 资源,但我很担心,因为我感觉到实现可能是耗时和费力的。 有没有其他同样有效的方法来做到这一点? 解决方案 可能不是翻译的最佳工具,但是我使用的是 GNU Gettext 年份。 这个过程很简单: 你运行dxgettext提取字符串 你 ..
发布时间:2017-04-28 18:58:36 Delphi

在exe文件中的Delphi签名

键入 TDelphiSignature = record 签名:LongWord的数组[0..3] 版本:string; 结束 const DelphiSignature:TDelphiSignature的数组[0..2] =( (签名:($ 384F3D26,$ B83782C2,$ 034224F3,$ 833A9B17);版本: Delphi Entreprise'), ( ..
发布时间:2017-04-28 18:57:43 Delphi

是否可以调整TStringField在Delphi中像TWideStringField一样工作?

我们希望使用Delphi 2009和Interbase中的Unicode,并发现将字符编码从WIN1252切换到UNICODE_FSS或UTF8,我们首先必须在所有数据模块中用TWideStringField替换所有的TStringField实例。对于约60个数据模块,我们不能简单地在一个周末做到这一点。我可以看到迁移策略只有两个选项: 找到一个解决方法,允许使用现有的TStringFiel ..
发布时间:2017-04-28 18:57:07 Delphi

Delphi中IntraWeb的替代方案?

解决方案如果我想在Delphi中编写一个简单而有意义的Web服务器,那么Delphi是否有IntraWeb的替代方案? 当我也在做Delphi工作时,我一直在做Cold Fusion,PHP和ASP工作,发现很奇怪,我在编写服务器端的脚本会被一遍又一遍地解析,而真的Delphi快速编译器!所以我出去了,开始 http://xxm.sf.net/ 它提供了一种组合HTML和对象Pascal进入相同 ..
发布时间:2017-04-28 18:56:17 Delphi

我如何使用RTTI设置嵌套属性的值

检查这个简化的样本(真实场景是不同的),我想设置一个对象的嵌套属性的值,在这种情况下设置一个 TLabel p2:TRttiProperty; c:TRttiContext; begin c:= TRttiContext.Create; try p:= c.GetType(Label1.ClassInfo).GetProperty('Font'); p2:= c.GetType(p.P ..
发布时间:2017-04-28 18:55:56 Delphi

将名称的变量更改为输入(Pascal)

我想知道解决这个问题的基本方法。还要特别感兴趣的是Pascal的具体解决方案。 让我们说一个有2个输入的表单:'InputVARIABLE'和'InputVALUE'。 在InputVARIABLE区域中,用户键入要更改的变量的名称。在InputVALUE区域中,用户键入该变量的值。 因此,对于inputtexts的“color”和“blue”:如何在不使用IF语句的情况下更改变 ..
发布时间:2017-04-28 18:55:44 Delphi

Delphi从DLL中打开模态窗体

我需要为应用程序添加一些插件功能,并且能够动态加载和打开插件。 在我的应用程序(主窗体)中,我有以下代码: 程序TfrmMain.PluginClick(发件人:TObject); Var DllFileName:String; DllHandle:THandle; VitoRunPlugin:procedure(AppHandle,FormHandle:HWND); ..
发布时间:2017-04-28 18:55:30 Delphi

{$ IFOPT A4}?

在Delphi 2009(或更早版本)中,如何在代码中检查“Align”编译选项? IFOPT 指令似乎只能使用纯开关( {$ IFOPT A4} 不编译)。 我找不到等效的常量或这样的定义( {$ IF Align = 4} 等等) 解决方案 您可以通过定义具有已知打包规则的记录并使用SizeOf进行检查。在德尔福2009年测试: type TTestRec = ..
发布时间:2017-04-28 18:55:18 Delphi

Delphi解码json / utf8转义文本

我正在为复杂的应用程序编写一个模块,我的模块应该处理由web服务器返回的json响应。所以,我的问题是如何解码这样的文本: \\\П\\\о\\\и\ u0441\\\к \\\п\\\о \\\ф\\\а\\\м\\\и\\\л\\\и\\\и,\\\и\\\м\\\е\\\н\\\и(\ u043e\\\т\\\ч\\\е\\\с\\\т\\\в\\\у 这是西里奇文 ..
发布时间:2017-04-28 18:54:59 Delphi

在后台线程中运行Firebird查询并保存结果集

我想在delphi-2009中将带有参数的查询执行到线程安全的类。 我在谷歌浏览,但是我没有找到 谢谢 解决方案 我发现大多数数据库API在连接级只有线程安全。 Firebird可能有所不同,但使用InterBase几个(8+)年前,它不是线程安全的。更新:我已经验证过Firebird只有线程安全连接级别。 这意味着您通常需要避免同时使用多个线程的单个连接。针对给定连接的 ..
发布时间:2017-04-28 18:54:26 Delphi

带有按钮的自定义字幕的通用对话框

我知道这个问题从此之前已经过去了(例如:显示自定义消息对话框的最佳方式),但我仍然找不到我想要的。 我开始像这样: 类函数TAttracsForm.MessageDlg(const aMsg:string; aDlgType:TMsgDlgType; Buttons:TMsgDlgButtons; aCaptions:String of array; aDefault:TMsgDlgB ..
发布时间:2017-04-28 18:53:49 Delphi

StringReplace的二进制版本

我正在尝试在一个RawByteString上运行AnsiStrings.StringReplace,它持有一个数据块,其中一些数据需要被替换。它会工作,除了里面的StringReplace它将我的字符串转换为一个PAnsiChar,所以搜索结束一旦遇到blob中的第一个#0字节,bail结束。 我正在寻找一个像StringReplace一样的例程,但是可以安全地使用可能包含空字节的blob。 ..
发布时间:2017-04-28 18:53:36 Delphi

单独线程中的无限循环

我有一些需要定期执行的数据库优化例程。我正在使用一个TTimer,但是主VCL冻结并且非常黑客...我想知道最好的方法是使用低CPU消耗并执行这些例程。我认为将例程放在具有低线程优先级的单独线程中是最好的方法。 任何想法? 解决方案 如果可能的话,只需编写所有的线程来完成在特定时间完成的最重要的事情。如果您不清楚您正在做什么,线程优先级可能导致严重的性能问题 。相反,只需对您的线程进 ..
发布时间:2017-04-28 18:51:31 Delphi

使用BPL加载Delphi对象运行时

我有一个班级在一个单位。通常,当我改变其方法的算法时,我必须重新编译并提供整体补丁。 我认为使用DLL创建类的实例。在delphi.about.com中搜索后,我发现不用使用DLL,我可以使用BPL。它是Delphi的一个DLL。问题是几乎所有的例子,我发现只是告诉如何导出一个功能。 我想动态加载BPL,每当我更换BPL,我可以得到类的最新算法,不仅仅是我导出的函数。 文章我已阅读: ..
发布时间:2017-04-28 18:51:19 Delphi

如何解决Delphi内存不足错误?

我有一个Delphi XE2项目来处理大量的计算。 在我的项目中,我共有1290个数字编辑,340 标签的数量,330 面板的数量,16个 TabSheet 。对于每个编辑,有 OnChange , OnDblClick , OnEnter 和 OnExit 事件。 我必须处理总共1034个变量的数字。我刚刚设计了 Form ,而不是添加这些计算逻辑。现在我的 .pas文件成为 62. ..
发布时间:2017-04-28 18:50:37 Delphi

Delphi:如何知道TEdit何时改变大小?

TEdit没有 OnResize 事件。 编辑框可以在不同时间调整大小,例如: 更改代码中的宽度/高度 缩放为DPI缩放的表单 改变字体 我确定别人我不知道。 我需要一个事件来知道编辑框何时改变了它的大小。是否有Windows消息我可以子类化编辑框和抓取? 解决方案 OnResize被声明为TControl的受保护属性。你可以使用所谓的“饼干”类来暴露它。这是一 ..
发布时间:2017-04-28 18:50:23 Delphi