自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 [Delphi]一个功能完备的国密SM3(杂凑值,或称为哈希值、散列值、摘要)类(TSM3)

国密SM3的Delphi实现和演示

2023-04-04 11:42:35 700

原创 [Delphi]一个功能完备的国密SM4类(TSM4)[20230413更新]

本程序提供了一个功能完备的国家商用密码SM4的类, 让使用者轻松实现数据的加密和解密.

2023-03-22 16:11:12 1584 3

原创 在Delphi程序中提取本身的DFM资源数据

在Delphi程序运行时, 提取程序本身的DFM资源数据

2023-02-24 11:35:17 295

原创 【Delphi Frame 使用示范】

帮助Delphi初学者学会使用Frame编程

2023-02-17 18:10:08 962

原创 [Julia语言]使用Chudnovsky 算法快速计算圆周率 Pi (π) 值

计算1万位的Pi值,用Julia实现的Chudnovsky算法耗时0.16秒,作为比较,用Julia实现的另一个算法([Julia&Delphi]快速计算圆周率 Pi (π) 值_BlueStorm的博客-CSDN博客)耗时4.87秒, 相比起来性能提高了18倍。function CalcPi_2() #Decimal.precision = this.digits + 2; decimalwidth = 10000; digitsPerIteration =...

2022-03-08 17:26:57 715

原创 [Julia&Delphi]快速计算圆周率 Pi (π) 值

算法参考自: 计算圆周率Pi(π)值,精确到小数点后10000位 - 圆周率10000位 - C++ 爱好者分别以Julia和Delphi语言写的算法如下面所示。在一台10年的老电脑(CPU是E31230v2)测试,计算1万位的Pi值,Julia算法耗时4.87秒,Delphi算法耗时12.3秒。作为比较,原作者的C++Builder算法耗时8.6秒。#Julia语言function CalcPi() ARRSIZE = 10100 DISPCNT = 100...

2022-03-08 00:01:08 1152

原创 [Delphi]快速计算质数序列

本程序(uPrimes)的算法是从Julia语言的Primes软件包算法转换过来,能实现1秒内找出0到1亿范围内的所有质数,这是编译为64bit的测试结果, 如果编译为32bit的话稍慢些。 常用的找质数的方法如uPrimesSimple单元所示,方法很简单,但0到1亿范围内找出所有的质数要超过7秒,性能上与前者相比,有7倍差距。unit uPrimes;interfaceuses SysUtils, Math;type TIntArray = arra...

2022-03-06 15:53:10 371

原创 用Delphi快速计算斐波那契(Fibonacci)数列中的第n个数

unit uMain;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;type TForm1 = class(TForm) RichEditResult: ...

2022-02-24 13:45:36 449

原创 用Julia语言快速计算斐波那契(Fibonacci)数列中的第n个数

using BenchmarkToolsfunction docalc(n) if n <= 1 return BigInt(n) end a = BigInt[[1,1] [1,0]] r = a^n; return r[1,2]end运行@btime docalc(100):14.100 μs (272 allocations: 5.52 KiB)返回值:354224848179261915075运行@btime docalc(1000000).

2022-02-23 23:52:03 291

原创 高速公路为什么会塞车?

【下面的车流量,指的是在单位时间里高速公路的单向车流量,如5.3辆/秒等】V1是进入堵塞区的车流量;V2是离开堵塞区的车流量T1是各种原因导致堵塞出现的时间点(假定车无法继续前进);T2是堵塞原因解除交通恢复的时间点Tx是某车进入堵塞区的时间点;Ty是该车离开堵塞区的时间点;Tz是堵塞区清空的时间点下面,我们来计算一下3个东西:堵塞区在某个时间点有几辆车?该车脱离堵塞区需要多长时间?堵塞区清空需要多长的时间?(1)交通开始恢复后,在某个时间点T堵塞区内车辆数车辆数 = V1*

2021-10-12 15:40:26 343

原创 [Delphi]海康威视视频监控录像机布防报警的示例代码

HCNetSDK.pas由于太大,无法在这里粘贴,请到​​​​​​下列地址下载盒子论坛 v2.1http://bbs.2ccc.com/topic.asp?topicid=606222unit uMain;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, ...

2021-09-27 15:55:34 2140 1

原创 [Delphi]检查上网线路的DNS性能

说明:近期发现某个电信运营商上网宽带的DNS服务的一个问题:DNS查询频率有限制。如果只是在家庭里面使用上网宽带,应该没有问题,但如果在单位里面使用,使用人数较多时,DNS查询频率会大于限制的频率,造成上网卡顿的问题。但遇到上网卡顿,但Ping又正常时,可以用此程序检查上网线路的DNS性能。需用上网线路所用的DNS服务器的ip地址替换上图中的DNS服务器ip地址。让查询次数达到1万次以上,看看有没有超时的现象。如果超时较多,就应该联系运营商解决了。uMain.pas:unit uMai...

2021-08-11 16:25:31 379

原创 【Delphi】用播放wav格式数据实现的Beep声音

以前播放报警声,我都是使用Windows.Beep(Freq, Duration),但这个Beep比较死板,播放声音时程序时停止的,知道声音播放完毕;另外两个连续的Beep,实际上属于

2021-06-18 13:36:12 717

原创 达到群体免疫所需要的疫苗接种率的计算方法

R0R0叫基本再生数,是指一个带病毒的人能够传染多少人。新冠病毒的R0测算有高有低,平均大概是3,就是一个人能传3个人左右

2021-05-31 09:32:48 6745

原创 【Delphi】 获取硬盘ID

function GetHardDiskID: String;const wbemFlagForwardOnly = $00000020;var iValue: LongWord; oEnum : IEnumvariant; FWbemObject : OLEVariant; FWbemObjectSet: OLEVariant; FWMIService : OLEVariant; FSWbemLocator : OLEVariant;begin; Resul.

2021-04-13 19:55:50 940 4

原创 【Delphi】使用Winapi.Security.Cryptography单元做3DES加解密的示例

较新版本的Delphi提供了Winapi.Security.Cryptography单元。unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Winapi.S

2021-03-30 20:38:51 835

原创 【Delphi】以高性能方式把线程信息显示在界面上的一个通用小框架【2023-08-05更新】

Delphi通常使用TThread.Synclonize把线程信息显示到界面上,但由于此方法需与主界面同步,会拖慢线程的运行,如果显示的信息比较多或更新很快,对程序的性能会有比较大的影响。此框架使用PostMessage异步方式,最大程度地提高了程序的性能,并保证了信息显示的顺序

2021-01-25 12:33:17 1557

原创 【Delphi】用indy写的Telnet客户端

Unit1.pas:unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;type TForm1 = class(TForm) Memo1: T...

2021-01-14 19:47:52 825 1

原创 【Delphi】运行程序时自动检查程序是否已经有一个实例在运行

//uCheckAppRunning.pas:unit uCheckAppRunning; //检查程序是否已经在运行,不允许运行多个实例interfaceuses System.SysUtils, System.Classes, Winapi.Windows, Vcl.Forms, Winapi.Messages, Vcl.ExtCtrls, Vcl.Menus, Vcl.Dialogs, Winapi.TlHelp32, Winapi.PsAPI;type TShow...

2021-01-04 15:58:42 1102

原创 【Delphi】实现程序关闭时自动先关闭线程【20210125更新】

unit Unit1; //测试用interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, uGernericThread;type//改为TTestThread = class(TThread)会报内存泄漏,证明线程没有自动释放 TTes.

2020-12-09 13:50:50 673 1

原创 【Delphi】在主Form以外的Unit中拦截主Form的消息

unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Unit2, Unit3;type TForm1 = class(TForm) procedure Form...

2020-11-23 17:01:33 215

原创 【Delphi】基于WinSock的Ping程序

unit uMainForm;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, uIcmp, uWinSock;type TMainForm = class(TForm...

2020-11-19 20:01:12 432

原创 【Delphi】用于企业微信发送信息的示例程序(要求Delphi 10.1及更新版本)

unit uMainForm;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, uWeWork;type TForm1 = class(TForm) Memo1: TMemo; Butt...

2020-11-02 15:18:09 1429

原创 【Delphi】一个使用简单的Delphi JSON构建类(需要Delphi 10.1及以上版本)

说明: TJSONBuilder最多只允许存在一个实例,每次执行TJSONBuilder.Create时都会清除掉上一次创建的实例,程序关闭时也会自动清除最后创建的实例, 因此使用这个类不需要考虑内存释放的问题。使用示例:uses uJSONBuilder, System.JSON.Builders;procedure TForm1.ButtonShowClick(Sender: TObject);begin TJSONBuilder.Create .BeginO...

2020-10-22 12:24:27 775

原创 【Delphi】从大华科技SDK的C头文件转换来的DHNetSDK.pas和DHConfigSDK.pas

大华科技的SDK不支持Delphi,如果想用Delphi调用大华科技SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。文件压缩包里面的两个文件(DHNetSDK.pas和DHConfigSDK.pas)是我用我自己编写的程序自动转换而成来Delphi版大华科技sdk接口文件,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 本人未对此两个文件做过完整的测试,仅供参考,如有问题欢迎留言 对应的大华科技SDK版本:1119451_General_NetSDK_C...

2020-06-10 11:16:15 1168

原创 【Delphi】从海康威视SDK的C语言头文件HCNetSDK.h转换来的HCNetSDK.pas【20230717更新】

海康威视的SDK不支持Delphi,如果想用Delphi调用SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件HCNetSDK.h超过5万行,手工转换不但耗时,而且容易出错,而且出错了也难以发现,因此自行编写了一个转换程序来做转换,只有#if语句或宏函数等极为个别的地方使用手工做转换。我只使用了其中涉及录像机状态查询、回放等极为少数的功能,如有问题欢迎留言 对应的海康威视SDK版本:CH-HCNetSDKV6.1.4.6_build20191220_Win32 下列...

2020-05-29 20:02:48 2693 9

原创 【Delphi】一个功能齐全的Delphi DES类(含3DES)[更新20201130]

//包含DES加/解密和3DES加/解密//---------------------------------------------------------------------------unit u3DES;interfaceuses{$IF CompilerVersion <= 22} Forms, Classes, Windows, SysUtils, Net...

2019-07-28 18:59:01 3499 14

原创 【Delphi】把Delphi程序窗口收缩到系统托盘的最简单的实现方法【20201117更新】

把下面的UnitTray单元加入到现有程序项目中就可以了,注意实现所用的方法重载了主Form的OnClose事件://此单元用于控制托盘图标行为unit UnitTray;interfaceuses SysUtils, Classes, Windows, Forms, Messages, ExtCtrls, Menus;type TTray = class(TDataM...

2019-07-28 18:50:33 1042

原创 【Delphi】基于 SQL Server BCP API的BCP类

unit uBcpApi;interfaceuses {$IF CompilerVersion <= 22} Windows; {$ELSE} Winapi.Windows; {$ENDIF}//ODBCtype SQLHANDLE = Pointer; SQLHENV = SQLHANDLE; SQLH...

2018-09-21 21:31:24 639

原创 【Delphi】一个可以不断执行命令、能读取命令输出而且隐藏的Console类[更新:允许实时输出]

unit uConsole;interfaceuses{$IF CompilerVersion <= 22} Classes, Windows, Messages, SysUtils, Variants, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,...

2018-09-13 17:06:26 1085

原创 【Delphi】StringList组件进行接口化处理

TStringList是Delphi编程中经常使用到的组件,对它进行接口化处理的主要目的,是实现TStringList的内存自动释放。例如下命的过程,执行完毕后,为aList变量所分配的内存就会自动释放,不需要用aList.free来释放内存,可以有效避免因忘记释放内存而导致内存泄漏。接口中并没有包括全部的TStringList函数或过程,可以根据实际需要进行增减。这个接口化处理方法也适用于其它组...

2018-08-03 10:25:42 626

原创 【Delphi】大幅提升Datasnap数据传输效率的方法

方法一:增加TCP读写缓存的大小 DataSnap Server中负责TCP/IP通讯的组件是TDSTCPServerTransport,它默认的TCP/IP读写缓冲区的大小为32KB,由BufferKBSize属性来设置。测试结果显示,这个默认的缓冲区大小,只适合返回很小的数据集的情况,在返回较大的数据集、或者上传文件到数据库/从数据库下载文件等情况下,会造成严重的数据传输效率低下...

2018-07-30 12:14:11 4686

原创 【SQL Server】清除数据库表中的右截断字符

这里说的右截断字符,是指类型为char或varchar的字段中,最后一个双字节字符(如汉字)由于字段宽度不够被切断为只剩下1个字节的字符,这个字符会被显示为乱码。SQL Server 2000及更早的版本,碰到要保存的字符串长度大于字段长度时,会把字符串截成字段的长度再保存,这个过程会出现右截断字符。数据库升级到新版本后,这些右截断字符仍然存在,会妨碍数据导入/导出、BCP in/ou...

2018-07-26 13:19:43 1836

原创 【RISC-V】Hifive1开发板在Arduino IDE中的配置方法

. 操作系统: 建议使用Ubuntu 16.04 LTS,据说这是设计Hifive1开发板的公司SiIive使用的操作系统版本。可以使用安装在虚拟机上Ubuntu。Sifive官方暂时不支持Windows版的Arduino IDE;对于macOS,虽然官方说是支持的,但实际使用时编译会报错。Ubuntu 16.04 LTS的下载地址: http://releases.ubuntu.com/rele...

2018-07-10 23:47:01 2046 1

原创 【RISC-V】使用Arduino IDE开发环境编写的Hifive1开发板演示程序(Demo)。

RISC-V指令架构现在非常热,大有未来全球标准指令集之势。Hifive1是Sifive公司推出第一个商用RISC-V开发板,里面预装了一个三色发光二极管的颜色渐变的演示程序,但没有提供源代码,所以本人就仿照Hifive1开发板的演示效果,使用Arduino IDE写了这样一个模仿原效果的演示程序,如下供参考:const int PinGreen = 3, PinBlue = 5, PinRed ...

2018-07-04 21:23:32 1632

原创 【Delphi】解决的TIdFtp组件在使用压缩方式下载有时会报错的问题 [更新:Delphi 10.3又有新Bug]

本人在使用Delphi TIdFtp进行压缩方式下载时,发现有时会报一个EIdReplyRFCError类型的错误,错误信息为Data connection closed abnormally。经分析发现是由于IdCompressorZLib单元的procedure TIdCompressorZLib.InternalDecompressStream处理不当造成的。估计全部Delphi版本自带的T...

2018-07-04 11:03:22 947

原创 【Delphi】解决XE3及以上版本中的ClientDataSet的长中文字段名出现乱码的问题【此问题从Delphi 10.3.3开始已解决】

这个问题起码从Delphi XE3开始就存在,一直到目前最新版本都是这样,而且预计还会长期存在下去。导致这个问题的原因是这个组件和DataSetProvider组件的一些变量从AnsiString改成了utf8String, 但又没有改得很完整。对于英文来说,AnsiString和utf8String是一样的,因此对英文没有影响,但对于其他语言来说,AnsiString和utf8St...

2018-06-29 22:38:41 1314

原创 【Delphi】在DBGridEh的CheckBox列中根据条件禁用部分CheckBox(显示为灰色)的示例

[code=delphi]unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DBGridEhGrouping, ToolCt...

2018-06-21 18:49:56 1698

DHNetSDK__DHConfigSDK__V3.052 For Delphi.rar

大华科技的SDK不支持Delphi,如果想用Delphi调用大华科技SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。文件压缩包里面的两个文件(DHNetSDK.pas和DHConfigSDK.pas)是我用我自己编写的程序自动转换而成来Delphi版大华科技sdk接口文件,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 本人未对此两个文件做过完整的测试,仅供参考,如有问题欢迎留言    对应的大华科技SDK版本:1119451_General_NetSDK_Chn_Win32_IS_V3.052.0000001.1.R.200514

2020-06-10

HCNetSDK.pas

海康威视的SDK不支持Delphi,如果想用Delphi调用SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。此文件是用本人编写的程序自动转换而成的海康威视sdk接口,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 我只使用了其中涉及录像机状态查询、回放等极为少数的功能,未对此文件做过完整的测试,仅供参考,如有问题欢迎留言

2020-05-30

HCNetSDK.pas

     海康威视的SDK不支持Delphi,如果想用Delphi调用SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。此文件是用本人编写的程序自动转换而成的海康威视sdk接口,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 我只使用了其中涉及录像机状态查询、回放等极为少数的功能,未对此文件做过完整的测试,仅供参考,如有问题欢迎留言

2020-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除