草庐IT

windows - TControl.Perform 的替代品

TControl.Perform代码是:varMessage:TMessage;beginMessage.Msg:=Msg;Message.WParam:=WParam;Message.LParam:=LParam;Message.Result:=0;ifSelfnilthenWindowProc(Message);Result:=Message.Result;程序执行等待返回,对吗?有一种替代方法,可以在同一个应用程序的另一个线程内的TFORM队列中发布消息,而无需等待返回?编辑这种方法可以缓解这个问题吗?interfaceconstWM_DOSTUFF=WM_APP+$001;TM

windows - TFileListBox 组件查找不再存在的文件

我在Windows7上使用Delphi7,并且有一个应用程序使用TFileListBox组件循环访问目录中的文件并将它们复制到备份目录。我遇到了一些奇怪的行为,即TFileListBox正在检测目录中不存在的文件?我处理的目录包含75个文件,但TFileListBox检测到超过100个文件。我更改了资源管理器设置以显示隐藏/系统文件,但仍然看不到这些额外文件的来源。我想知道这个Windows7以前的版本是否在这个问题中发挥了作用,因为我相当确定TFileListBox正在检测的额外文件确实曾经驻留在这个目录中但被删除了...如有任何帮助,我们将不胜感激。 最

c++ - Windows C++ 十六进制查看器 GUI 组件

我正在寻找一个WindowsC++(或EmbarcaderoDelphi/C++BuilderVCL组件)GUI组件,用于外观专业的十六进制查看器/编辑器。虽然很容易构建一个基本的组件,但我需要一个经过抛光的现代外观组件。(可以处理任意数量的数据,根据需要从某种流中加载。颜色/字体可自定义。突出显示字节选择/单个字节)下面是我在实际应用中看到的2个更有用的十六进制查看器/编辑器组件:http://niiconsulting.com/checkmate/wp-content/uploads/2009/10/fileinsight-2.jpghttp://www.the-interweb.

Delphi语言的VCL框架

Delphi是一种面向对象的编程语言,它具有丰富的开发工具和库,其中包括可视化组件库(VisualComponentLibrary,简称VCL)。VCL是Delphi的一个重要组成部分,它提供了一套丰富的可视化组件,可以快速构建Windows应用程序。VCL是Delphi中最常用的可视化组件库之一,它提供了许多UI控件,如按钮、标签、文本框、列表框、下拉列表框、树形控件、网格控件等等。这些组件可以通过可视化界面设计工具来进行拖放,设置属性,添加事件处理程序等等。VCL还提供了一些非常有用的组件,如数据库控件、HTTP客户端、图形控件等等,可以大大加速应用程序的开发。VCL还提供了许多基本功能的

c++ - 透明的频谱图选择叠加

我正在尝试在频谱图上创建透明的选择叠加层,但效果不佳。我的意思是结果不是很令人满意。相比之下,绘制在波形顶部的叠加效果很好,但我需要同时支持波形和频谱图View(以及future可能的其他View)选择覆盖在波形View中工作正常这是频谱图View中的选择叠加层(选择看起来很糟糕,遮住了部分频谱图)两个View的代码(VCL)相同voidTWaveDisplayContainer::DrawSelectedRegion(){if(selRange.selStart.x==selRange.selEnd.x){DrawCursorPosition(selRange.selStart.x)

c++ - 在 C++ Builder XE2 中重命名 VCL Form 类

在工作中,我们有一个相当大的C++VCL表单应用程序。它在EmbarcaderoXE2中编译,但可以追溯到很多年前。我需要向此应用程序添加一个新表单。当您执行“File>AddNew>VCLForm”时,将创建一个类名为TForm1的表单。还创建了一个指针,如下所示:TForm1*Form1出于显而易见的原因,我想重命名表单和指针,比如TStuffForm和*StuffForm。问题是我无法让它工作!致所有实际的XE2用户:执行此操作的规范方法是什么?我曾尝试通过仔细替换字符串直接在代码中重命名,但它不起作用。IDE发疯了,并向我发出多个模式弹出窗口,提示缺少TForm1类。那太不愉快

c++ - 何时使用 `__fastcall` 调用约定

我们有很多用C++编写的基于VCL的应用程序。所有VCL方法(在__published类修饰符下)都需要__fastcall调用约定。但是,无论出于何种原因,开发人员一直在将__fastcall添加到其他private、protected或public的非VCL函数。基于thisarticle,这对我来说毫无意义,因为它不必要地使代码复杂化,甚至可能会影响性能(虽然可能可以忽略不计)。尽管如此,在建议我们在某些地方删除它之后,我被告知我们一直都是这样做的,所以要保持一致,这只是一个风格问题。我认为如果没有必要,它实际上会让人们感到困惑,所以这是不好的做法。我的问题是,什么时候使用__f

c++ - TBitBtn 和 TButton 继承链发生了什么变化?

我最近开始将我的RADStudio2007项目升级到RADStudio2009。我注意到的一件事是看似简单的代码突然无法编译。示例代码:classCButtonPopupMenu{//Snippublic:voidInit(TButton*SrcButton){SrcButton->OnClick=OnButtonClick;}private:void__fastcallOnButtonClick(TObject*Sender){//Dosomebuttonclickstuff}};//SnipTButtonbutton=newTButton(this);TBitBtnbitBtn=n

c++ - 如何在 Borland VCL 中获取组件的父窗体?

我想确定给定组件在我的应用程序中属于哪种形式。Parent和Owner属性都不能假定为表单本身,所以我不能简单地使用它。我想我可以递归地遍历Parent属性,直到我得到从TForm派生的东西,但是有没有更好的方法来做到这一点?我使用了搜索功能,但找不到针对我的问题的任何内容。顺便说一句,我正在使用BorlandC++Builder(标记为Delphi,因为大多数VCL用户似乎都用Delphi编写,而我读Delphi代码也很好)。提前致谢! 最佳答案 您可以在Forms单元中使用GetParentForm-VCL也经常使用它。它执行您

Delphi7_VCL线程的使用(一)

1、TThread类的属性  (1)FreeOnTerminate属性  该属性用于指定当前的线程终止时是否自动删除线程对象。默认值为true。  语法: 1PropertyFreeOnTerminate:Boolen;   (2)priority属性  该属性用设置线程的优先级,线程的优先级是对同一进程的其他优先级而言的。  语法:1Propertypriority:TThreadPriority;   指定线程的优先级为低,代码如下:1var2SecondProcess:TMyThread;3begin4SecondProcess:=TMyThread.Create(True);5Seco