C++Builder
文章平均质量分 61
我来看看CB
这个作者很懒,什么都没留下…
展开
-
在C++ Builder中编译时判断是VCL工程还是FMX工程
有时为了使以前的代码可以用在FMX工程中,需要设置编译条件以便使用不同的语句,但是C++Builder没有提供编译条件。在网上查了一些文章,基本都是运行后才能判断是否为FMX或VCL程序。 为了实现这个功能,只能采取手工定义编译条件,当编译VCL工程时采用#define _IS_VCL_ 当编译FMX工程时采用#define _IS_FMX_ 这时需要注释掉 //#define _IS_VCL_ 这种方法暂时满足要求,就是需要手工修改。 最近...原创 2021-10-25 16:43:05 · 391 阅读 · 0 评论 -
在C++Builder中使用OLE出现“类worksheet的paste方法无效”错误的一种解决方法
在C++Builder中使用OLE的方式把数据库表中(TDBGrid)的内容保存到Excel的学习过程中,跟“ccrun(老妖) info@ccrun.com”学习了很多(致敬ccrun(老妖))。 后来增加了把TStringList中的内容保存到Excel,重复向每个cell填充,这个方法的缺点是太慢。也可以一次填充一行(未实现)。下面是示意代码:System::Variant vExcelApp;System::Variant vSheet;String strXlsFil...原创 2021-10-24 14:25:53 · 4360 阅读 · 0 评论 -
在C++Builder中可以利用FireMonkey的函数实现RGB与HSL之间的转换
RGB转换为HSL的算法一般需要自己编写,但是在C++Builder中可以利用FireMonkey的函数实现RGB与HSL之间的转换。下面是利用FireMonkey的RGBtoHSL和HSLtoRGB函数(需要注意的是函数参数H、S、L都是0-1之间的数据,所以显示的色相H、饱和度S、亮度L都要经过转换)实现的4个函数的代码:#include <System.UIConsts.hpp>// --------------------------------------------.原创 2020-07-20 14:53:43 · 481 阅读 · 0 评论 -
C++Builder利用TDirect2DCanvas的一些注意事项
1、用TDirect2DCanvas单次创建多次绘制,耗时比多次创建多次高精度绘制提高26倍,比VCL提高3倍。##绘制2880*1800时#绘制BMP375毫秒,绘制精度0,###保存图片634毫秒 VCL##绘制2880*1800时#绘制BMP3.0秒, 绘制精度1,###保存图片3.2秒 TDirect2DCanvas多次创建多次高精度绘制##绘制2880*1800时#绘制BMP115毫秒,绘制精度1,###保存图片346毫秒 TDirect2DCanvas单次创建多次高精度绘制...原创 2020-07-13 12:07:39 · 580 阅读 · 0 评论 -
在C++Builder中用Direct2D实现抗锯齿绘图效果
直接上代码:#include <d2d1.h> // 必须放在Vcl.Direct2D.hpp前面#include <Vcl.Direct2D.hpp>// ---------------------------------------------------------------------------// 用Direct2D实现抗锯齿绘图效果void __fastcall Line2(Vcl::Graphics::TCanvas *canvas, int X1,原创 2020-05-31 13:53:03 · 1022 阅读 · 0 评论 -
C++Builder下判断窗口移动
由于需要判断窗口是否移动,如果移动后则执行一些操作,在网上查找了一些资料,可以加载Application->OnMessage事件实现。现在记录下来,留作备用和经验分享。下面是具体实现C++Builder代码:// --------Unit1.h-------------------------------------------------------------------#ifndef Unit1H#define Unit1H// ---------------...原创 2020-05-31 13:33:19 · 382 阅读 · 0 评论