很抱歉这个问题,但我对Delphi有点菜鸟。我正在使用DejanTComport组件从串行端口获取数据。连接到该端口的一盒设备向串口发送大约100字节的二进制数据。我想要做的是将字节作为数值提取到一个数组中,以便我可以对它们执行计算。TComport有一个Read(buffer,Count)方法,它从输入缓冲区读取数据。functionRead(varBuffer;Count:Integer):Integer;帮助说明Buffer变量必须足够大以容纳Count个字节,但没有提供任何如何使用此函数的示例。我可以看到Count变量保存接收到的字节数,但我找不到访问Buffer中字节的方法。
我想递归地观察目录中的所有变化,即如果观察C:\我想接收通知C:\1.txtC:\A\1.txt如果我使用启用了watchSubtree选项的ReadDirectoryChanges,它只报告C:\1.txtC:\A它不能递归地工作。如何让它递归工作?我真的需要为每个子目录调用ReadDirectoryChanges吗?如果创建新的子目录/删除子目录怎么办?感谢您的帮助。 最佳答案 可以看看DirectoryWatch有效的组件。我在生产代码中使用它,所以我知道它可以正常工作,即使对于子目录也是如此。
我正在更改运行时框架的父级,以将框架从一种形式移动到另一种形式。这工作正常,但之后我的组件不再接收鼠标事件。例如,CM_MOUSEENTER和CM_MOUSELEAVE不会被触发。Frame.Parent:=SecondDisplayForm;Frame.Align:=alClient;SecondDisplayForm.Show;我不明白这个效果,我真的不知道要提供什么信息,所以如果你有提示请在这里帮助我。 最佳答案 如NGLN所报告的,它在D7中工作,但在BDS2006中它是可重现的。我发现在cm_mouseenter之后和cm
我有一个Delphi应用程序,它从一个文件中读取数据并将其存储在一个数组中。文件中的每一行都包含一个地址、lineTypeIndicator和数据。这是算法(包含我认为很关键的代码):AssignFile(inputFile,inFileName);Reset(inputFile);whilenotEOF(inputFile)dobeginReadln(inputFile,fileLineBuffer);ifCopy(fileLineBuffer,8,2)='01'then//Nevermanagedtocatchtheerrorherebeginbreak;end;//extract
我正在尝试从mqoa.tlb或mqoa.dll的Delphi7>Project>ImportTypeLibrary创建单元,在WinXP和Win2003上,甚至在Win7x64上(都是mqoa30.tlb和mqoa.tlb(或*.dll),代表MSMQ4.0)-每次它都失败并出现错误“找不到元素”。根据MSMQ版本,在Windows2003和WindowsXP上安装了“MSMQ3.0”,但在我的旧项目中,我从mqoa20.tlb("C:\WINDOWS\system32\mqoa20.tlb”)。我想切换到MSMQ3.0接口(interface),但我不能。有什么建议吗?顺便说一下,曾
当您编译并运行Delphi“Metro”应用程序时,它会从Windows8的桌面运行。哪些Windows8API可以使Delphi应用程序从开始屏幕运行?我指的不是WindowsRT。 最佳答案 那是不可能的。Delphi无法生成WinRT应用程序。 关于windows-从开始屏幕而不是桌面运行Delphi应用程序需要什么API,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/21
我在使用C++Builder调试器时遇到了很多麻烦。我使用的是最新版本XE5,包含所有补丁和更新。症状大致如下:我可以运行我的应用程序并调试一次,但如果我关闭该应用程序(“正确”或在调试器中重置程序),则下次运行它时它通常只会显示????对于watch值,调用堆栈将显示调用堆栈,但参数的函数通常也会显示???。关闭IDE并再次打开是我见过的“解决”此问题的唯一方法。我曾尝试重建整个项目组或类似的东西,但这没有帮助。我正在运行Windows7Pro、64位虚拟机、6GbRAM、分配的3个处理器和大量免费HD。没有奇怪的东西在后台运行:没有杀毒软件,除了IDE、Notepad++和Sour
我正在使用Window的API,尤其是“WaveIn”函数。我想知道我的笔记本电脑的输入音频设备支持的格式。因此,我使用了函数“waveInGetDevCaps”。此函数调用一旦被调用,就会用有关音频设备的信息填充WAVEINCAPS结构。到目前为止,这是我的代码:procedureTForm1.Button4Click(Sender:TObject);varwc:WAVEINCAPS;//structuretobefilledwithaudiodeviceinfobeginwaveInGetDevCaps(WAVE_MAPPER,&wc,sizeof(WAVEINCAPS));Sho
我正在使用delphi在桌面上进行开发。我想用ToastGeneric类型通知创建toast通知LToastFactory.CreateToastNotification(LXMLTemplate);此外,我正在使用xml,如https://learn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts我的问题是如何让delphi接受这个xml,我还没有找到将该字符串转换为Xml_Dom_IXmlDocument类型的方法。
我在Delphi中有一个程序,它以25赫兹(每秒25次)的速度从外部应用程序接收帧,然后通过创建1-2个额外的帧将其转换为60赫兹(每秒60帧)。我需要通过不断构建帧缓冲区并从此处从单独的线程输出帧来输出这些额外的帧。问题是1000/60是16.66667,这意味着我不能只在16或17毫秒的“间隔”中发送帧,我需要它更精确。我如何在Delphi/Windows中执行此操作? 最佳答案 使用multimediatimer通过Win32APItimeSetEvent()或CreateTimerQueueTimer()功能。