Delphi

什么是最好的GRID和TREE控制?

对于DELPHI win32,什么是最好的GRID和TREE控件?它也应该是DB-Aware。 我已经使用了DBGrid,但是它非常有限,并且将很多新功能 DevExpress作为令人印象深刻的工具和功能集合,但价格非常高。 什么是您的GRID / TREE的优缺点,当然还有其价格标签。 解决方案 我有DevExpress VCL订阅,虽然初始价格似乎很高,但价值是很好的,更新是合理 ..
发布时间:2017-04-25 00:35:00 Delphi

FreeMM vs ShareMem

我们有很多dll库用delphi和c ++构建器编写,并使用sharemem和borlndmm.dll。 第3方库中的一个分配问题有人可以为我解释“共享内存管理器”吗? 是SimpleShareMem的一个替换代码对于ShareMem? 我们可以停止部署borlndmm.dll吗? 我们还要用c ++ - 库做些什么? 可以有些库使用ShareMem和一些Simple ..
发布时间:2017-04-25 00:34:48 Delphi

以高性能的方式将字符串转换为十六进制

我开发了以下函数将字符串转换为十六进制值。 function StrToHex(const S:String):String; const HexDigits:Char ='0123456789ABCDEF'的数组[0..15]; var I:整数; P1:PChar; P2:PChar; B:字节; begin SetLength(Result,L ..
发布时间:2017-04-25 00:34:20 Delphi

可以向Delphi的TButtonedEdit添加历史列表下拉列表吗?

我使用的是Delphi XE2的TButtonedEdit,但是我想为历史记录添加一个下拉列表(像TComboBox)。我知道TComboBox是一个荣耀的TEdit,所以有一个消息我可以发送到TButtonedEdit添加这个功能吗?谢谢。 解决方案 您可以使用 IAutoComplete2 接口来完成此任务。 p> 检查此示例代码(适用于 TButtonedEdit 和Delph ..
发布时间:2017-04-25 00:33:37 Delphi

Microsoft AlwaysOn故障切换解决方案和Delphi

我正在尝试使Delphi应用程序与AlwaysOn解决方案一起使用。我在Google上发现,我必须在连接字符串中使用 MultiSubnetFailover = True 。 应用程序是在Delphi中编译的XE3并使用 TADOConnection 。 如果我使用 Provider = SQLOLEDB 在连接字符串中,应用程序启动,但它看起来像 MultiSubnetFailove ..
发布时间:2017-04-25 00:33:23 Delphi

从Windows任务栏中删除firemonkey

有没有办法,删除我的firemonkey应用程序窗体Windows XP / vista / 7任务栏? 问题: 如何隐藏Windows任务栏中dll中的表单。 解决方案 注意: Talibek 在问题中回答了自己的问题,为了清楚起见,我已经在这里移动了。 您需要获取主窗体句柄( Form1.Handle ),因为在firemonkey中没有Application.han ..
发布时间:2017-04-25 00:33:10 Delphi

如何从第二个线程更新进度指标?

我有一个带有进度指标的主窗体。 在数据模型中,我有十个数据集,每个都有一个定义的OnBeforeOpen事件。 我想通过主窗体中的进度条显示开放数据集进度的百分比。 由于我完全是多线程编程的新手,有人可以给我一些建议吗? 非常感谢 解决方案 从线程发布到主线程的消息,并更新进度条,或使用TThread.Queue方法在主线程的上下文中执行一些代码。 unit U ..
发布时间:2017-04-25 00:32:42 Delphi

在组件创建或流媒体中,为什么不应该使用句柄?

我想通过SDL_CreateWindowFrom函数创建一个定制的VCL控件来包装SDL渲染表面。 SDL_CreateWindowFrom采用现有的HWND句柄,并提供高性能的渲染上下文(它有几个后端可用,包括DirectX和OpenGL)。 帮助文件说“不要在组件创建或流媒体过程中,请参阅Handle属性。但是不说为什么。它表示您第一次尝试访问Handle属性时,会调用HandleNee ..
发布时间:2017-04-25 00:32:20 Delphi

在某些情况下使用中止来改进/简化代码

我之前曾经讨论过: http://stackoverflow.com/a/42156860/937125 我不太明白为什么在这种情况下, Abort 比调用 Exit 更好。我倾向于不在我的代码流中使用它。我认为这是一个不好的做法,对代码流不利。 但@ David在评论中的发言让我想知道是否可能我缺少某些东西: 没有一个无声的例外,怎么会当深度 在调用堆栈下时,您中止操作。例如,如何使 ..
发布时间:2017-04-25 00:32:08 Delphi

从Win32获取C或Delphi的BIOS UUID

VMWare配置文件包含一行,如 uuid.bios =“56 4d ed cf 3c cd 63 20-53 78 95 86 26 92 22 c8“ 最多(每个?)物理BIOS有这样一个UUID。有没有Windows API调用来获取此标识符? 我尝试过WMI类Win32_ComputerSystemProduct.UUID属性,但该值与uuid.bios值 ..
发布时间:2017-04-25 00:31:42 Delphi

如何使我的表单总是在我的主窗体上?

我尝试过: $ b如何使我的非模态表单永远在我的主窗体之上? $ b procedure TForm3.CreateParams(var Params:TCreateParams); begin 继承CreateParams(Params); Params.WndParent:= Application.MainForm.Handle; 结束 这似乎工作正常。这是 ..
发布时间:2017-04-25 00:31:29 Delphi

将二进制数据传递给D7中的dll函数

任何人都可以为我提供通过参数传递任意数量的字节 到dll函数的工作示例? 我想做没有任何额外的内存单元,只能在基本的Windows类型下运行。 我需要“发送”每个呼叫约300 kb的数据。 客户端上分配的内存是否也可以在客户端空闲? 解决方案 函数应该如下所示: procedure Test(Buffer:Pointer; Length:Integer);标准 ..
发布时间:2017-04-25 00:31:14 Delphi

如何链接“平行”类层次结构?

我有一个类层次结构,每个类对应一个特定的TComponent后代(分别为基类TDefaultFrobber,后代为TActionFrobber和TMenuItemFrobber,分别对应于TComponent,TCustomAction和TMenuItem)。现在我想要一个这样的工厂(?)函数: 函数CreateFrobber(AComponent:TComponent):IFrobber; ..
发布时间:2017-04-25 00:30:41 Delphi

在线程内执行OpenGL绘图

我一直在Delphi VCL自定义控件中包装核心的OpenGL功能。目前,我正在使用在此控件内创建的 TTimer 进行循环。我强烈地觉得使用定时器是完全错误的,因为绘图可能会重叠并有延迟。相反,我想把这个绘图循环放在一个线程中。请参阅我的原始问题,其中包含一些问题闪烁 - 我把责任归咎于我正在使用的 TTimer 。 问题 OpenGL是否可以安全地使用线程内部?我应该注意什么?我打 ..
发布时间:2017-04-25 00:30:28 Delphi

我可以在构建事件中检测到构建目标吗?

我想在构建事件中检测构建目标,即 make 或 build 。 我有一个预构建事件,可以将多个C文件编译成对象(.obj),然后将其包含在我的一个Pascal文件中。每次构建前事件运行时,C文件都将被编译。如果构建目标是 make ,并且对象是最新的,我希望能够跳过此阶段。 在编辑/编译/调试开发模式下,能够跳过这个阶段可以大大减少编译时间。 所以,是否可以检测构建目标? ..
发布时间:2017-04-25 00:30:02 Delphi