好吧,现在许多软件仍然是通过串口通讯的方式来与底层的硬件通讯。不论是真串口,还是 USB->COM 出来的串口,总之是串口进行通讯。 我们做软件开发时,要与设备通讯,但是,如果硬件设备没有或者还在研发中怎么办?那就只能通过各种方式来模拟。 这里我知道的有两个选择: 1、使用虚拟机软件,无论是 VirtualBox
分类: 杂谈
[代码] 调用ExitWindows 关闭系统
这个实际上有很多现成的代码了,这个代码是我自己改写的 Delphi 版的代码,可以在 Delphi/C++ Builder 中使用,已测试可以正常工作。 type TShutdownAction = (saLogoff, saReboot, saPoweroff); function Shutdown(Action:
[FMX] 在 Delphi/C++ Builder 中开发低功耗蓝牙设备
从蓝牙4.0开始定义了不同类型的蓝牙协议,原来的蓝牙协议改称为经典蓝牙(Classic Bluetooth),新的低功耗版本被称为BLE(Bluetooth Low Energy)。 要在 Delphi 或 C++ Builder 中使用低功能蓝牙,需要做以下步骤: 1、在你的工程中放一个 TBlueToothLE 组
[FMX] 低功耗蓝牙开发知识:服务名称及ID
//基础ID 服务名称:Base GUID 服务编码:{00000000-0000-1000-8000-00805F9B34FB} // GATT 配置 服务名称:GAP 服务编码:{00001800-0000-1000-8000-00805F9B34FB} 服务名称:GATT 服务编码:{00001801-0000-
[技巧] 让一个后台 TTabSheet 上的控件切换到前台并获得焦点
实际上,这个函数并不只能完成上面的功能,它是让一个控件获得焦点,当它在后台的 TTabSheet 页面上时,会将所在的 TabSheet 设置为活动页面,然后再切换获得焦点。当然,如果它本身不能获得焦点,那么,会让其父获得焦点,依次类推。 代码如下: function ForceFocus(ACtrl: TWinCon
密码保护:[译]RAD Studio 移动开发(西雅图版)- 使用 Tab 组件来显示页(iOS 和 Android)
无法提供摘要。这是一篇受保护的文章。
[专题] Delphi/C++ Builder 移动开发教程
本文翻译自 Delphi/C++ Builder 英文帮助,翻译采用中英文混排。如果中文看的有歧义,请参考英文原文理解。 英文原版在线访问 前言 在Mac(iOS)上配置你的开发环境 配置你 Windows PC上的开发环境(iOS) 配置你 Windows PC上的开发环境(Android) 创建一个移动平台应用程序
密码保护:[译]RAD Studio 移动开发(西雅图版)- 使用浏览器组件(iOS 和 Android)
无法提供摘要。这是一篇受保护的文章。
密码保护:[译]RAD Studio 移动开发(西雅图版)- 使用一个 MultiView 组件来显示信息的备选视图
无法提供摘要。这是一篇受保护的文章。
密码保护:[译]RAD Studio 移动开发(西雅图版)- 配置 Android 应用使用 Google 地图
无法提供摘要。这是一篇受保护的文章。
密码保护:[译]RAD Studio 移动开发(西雅图版)- 使用一个地图控件来操控地图( iOS 和 Android )
无法提供摘要。这是一篇受保护的文章。
[RVMedia] 在捕获视频时画面中叠加自绘内容
RVCamViewer 是 RVMedia 输出视频的对象,它提供了一个 OnPaint 事件,我们可以在其中控制要呈现给用户的内容。 下面的例子,我就在画面的右上角呈现了已经录制的时间,其中用到的 RollupTime 函数,请到 QString.pas 里找。 procedure TfrmVideoRecord.R
[FFMPEG] 使用 FFMPEG 将 MJPEG 格式转换为 H.264 格式的 MP4
这几天,用RVMedia的从摄像头抓取视频,但RVMedia 4.0.2 只支持录制成 MJPEG 格式,而 MJPEG 的格式是以JPEG 格式存贮的图片序列,只是在前面加上了一个 MIME 信息,其格式参考 http://blog.chinaunix.net/uid-22670933-id-1771591.html
[教程]枚举指定进程的所有窗口
实际上,这个的核心是用于一个 GetWindowThreadProcess 的 API 函数,通过它可以确定指定的窗口所隶属的进程。然后,结合 EnumWindows 就可以完成这一操作了。假设我们将所有的窗口句柄到一个 TList 中,我们大概的代码逻辑如下: function DoEnumProcessWnd(AW
[教程] 获取当前进程的父进程
有时候,我们创建了一个子进程,我们需要知道自己所隶属的父进程的ID。有几个办法,一个是调用微软未公开的 NtQueryInformationProcess 函数,另一个就是下面提供的一个函数,利用了公开的函数,运行需要包含 tlhelp32 单元。 function GetParentProcessId: Cardin
密码保护:[译]RAD Studio 移动开发(西雅图版)- 创建一个移动平台应用程序(iOS 和 Android)
无法提供摘要。这是一篇受保护的文章。
[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
[数据库] SQL Server 2005 以后数据库修改系统表的步骤
1、停止SQL Server 服务; 2、通过命令行启动SQL Server 进入单用户模式(将其中的 SQL Server 目录替换为你实际的 SQL Server 安装目录): “SQL Server 目录\Binn\sqlservr.exe” -m 在上面刷刷显示的一通日志里,找到下面的行: 2015-11-11