[技巧] 使用虚拟串口来仿真测试串口通讯

好吧,现在许多软件仍然是通过串口通讯的方式来与底层的硬件通讯。不论是真串口,还是 USB->COM 出来的串口,总之是串口进行通讯。 我们做软件开发时,要与设备通讯,但是,如果硬件设备没有或者还在研发中怎么办?那就只能通过各种方式来模拟。 这里我知道的有两个选择: 1、使用虚拟机软件,无论是 VirtualBox

[FMX] 在 Delphi/C++ Builder 中开发低功耗蓝牙设备

从蓝牙4.0开始定义了不同类型的蓝牙协议,原来的蓝牙协议改称为经典蓝牙(Classic Bluetooth),新的低功耗版本被称为BLE(Bluetooth Low Energy)。 要在 Delphi 或 C++ Builder 中使用低功能蓝牙,需要做以下步骤: 1、在你的工程中放一个 TBlueToothLE 组

[技巧] 让一个后台 TTabSheet 上的控件切换到前台并获得焦点

实际上,这个函数并不只能完成上面的功能,它是让一个控件获得焦点,当它在后台的 TTabSheet 页面上时,会将所在的 TabSheet 设置为活动页面,然后再切换获得焦点。当然,如果它本身不能获得焦点,那么,会让其父获得焦点,依次类推。 代码如下: function ForceFocus(ACtrl: TWinCon

[专题] Delphi/C++ Builder 移动开发教程

本文翻译自 Delphi/C++ Builder 英文帮助,翻译采用中英文混排。如果中文看的有歧义,请参考英文原文理解。 英文原版在线访问 前言 在Mac(iOS)上配置你的开发环境 配置你 Windows PC上的开发环境(iOS) 配置你 Windows PC上的开发环境(Android) 创建一个移动平台应用程序

[教程] 获取当前进程的父进程

有时候,我们创建了一个子进程,我们需要知道自己所隶属的父进程的ID。有几个办法,一个是调用微软未公开的 NtQueryInformationProcess 函数,另一个就是下面提供的一个函数,利用了公开的函数,运行需要包含 tlhelp32 单元。 function GetParentProcessId: Cardin

[FMX]好吧,又抓到 FireMonkey 的两个 Bug

【问题描述】 1、创建一个子窗体,上面放一个按钮,然后你在主窗体上放一个按钮,随便写点响应代码,然后调用子窗体的Show方法,将子窗体Show出来。编译为 Windows 32 位程序,你会发现那个按钮,需要点两下才能反应。 2、继续上面的问题,你如果将子窗体设置 BorderStyle 设置 None。然后编译为 A

[FMX] 使用 TTextLayout 来加快批量文本绘制

实际上,我们在绘制大量文本时,如果调用 TCanvas.FillText,会重复的创建和翻译 TTextLayoutManager 对象,影响绘制效率。所以,如果你要在 FMX 应用中大量绘制文本时,应该尽量将 TTextLayoutManager 独立出来,用它来绘制,而不是用 FillText,我实际做了下测试,同

[杂谈] RAD Studio X Update 1 官方发布了

点击从官方下载 点击查看修复的问题列表 此次是Idera收购后的首次更新,共修复了70多个Bug,大概分类下: 【编译器部分】 共修复了 19 个Bug,其中 C++ 15 个, Delphi 3 个,IDE 1 个。也许 CX 终于可用了,等待大家的测试结果,CX 原来基本上不可用。 【组件】 数据组件 8 个,Fi