- 博客(38)
- 资源 (3)
- 收藏
- 关注
原创 [Delphi]一个功能完备的国密SM4类(TSM4)[20230413更新]
本程序提供了一个功能完备的国家商用密码SM4的类, 让使用者轻松实现数据的加密和解密.
2023-03-22 16:11:12
1884
3
原创 [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
844
原创 [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
1226
原创 [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
448
1
原创 用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
489
原创 用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
330
原创 高速公路为什么会塞车?
【下面的车流量,指的是在单位时间里高速公路的单向车流量,如5.3辆/秒等】V1是进入堵塞区的车流量;V2是离开堵塞区的车流量T1是各种原因导致堵塞出现的时间点(假定车无法继续前进);T2是堵塞原因解除交通恢复的时间点Tx是某车进入堵塞区的时间点;Ty是该车离开堵塞区的时间点;Tz是堵塞区清空的时间点下面,我们来计算一下3个东西:堵塞区在某个时间点有几辆车?该车脱离堵塞区需要多长时间?堵塞区清空需要多长的时间?(1)交通开始恢复后,在某个时间点T堵塞区内车辆数车辆数 = V1*
2021-10-12 15:40:26
398
原创 [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
2310
1
原创 [Delphi]检查上网线路的DNS性能
说明:近期发现某个电信运营商上网宽带的DNS服务的一个问题:DNS查询频率有限制。如果只是在家庭里面使用上网宽带,应该没有问题,但如果在单位里面使用,使用人数较多时,DNS查询频率会大于限制的频率,造成上网卡顿的问题。但遇到上网卡顿,但Ping又正常时,可以用此程序检查上网线路的DNS性能。需用上网线路所用的DNS服务器的ip地址替换上图中的DNS服务器ip地址。让查询次数达到1万次以上,看看有没有超时的现象。如果超时较多,就应该联系运营商解决了。uMain.pas:unit uMai...
2021-08-11 16:25:31
438
原创 【Delphi】用播放wav格式数据实现的Beep声音
以前播放报警声,我都是使用Windows.Beep(Freq, Duration),但这个Beep比较死板,播放声音时程序时停止的,知道声音播放完毕;另外两个连续的Beep,实际上属于
2021-06-18 13:36:12
788
原创 达到群体免疫所需要的疫苗接种率的计算方法
R0R0叫基本再生数,是指一个带病毒的人能够传染多少人。新冠病毒的R0测算有高有低,平均大概是3,就是一个人能传3个人左右
2021-05-31 09:32:48
7072
原创 【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
1029
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
928
原创 【Delphi】以高性能方式把线程信息显示在界面上的一个通用小框架【2023-08-05更新】
Delphi通常使用TThread.Synclonize把线程信息显示到界面上,但由于此方法需与主界面同步,会拖慢线程的运行,如果显示的信息比较多或更新很快,对程序的性能会有比较大的影响。此框架使用PostMessage异步方式,最大程度地提高了程序的性能,并保证了信息显示的顺序
2021-01-25 12:33:17
1874
原创 【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
971
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
1208
原创 【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
739
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
258
原创 【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
507
原创 【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
1612
原创 【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
872
原创 【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
1243
原创 【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
3018
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
3699
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
1139
原创 【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
696
原创 【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
1193
原创 【Delphi】StringList组件进行接口化处理
TStringList是Delphi编程中经常使用到的组件,对它进行接口化处理的主要目的,是实现TStringList的内存自动释放。例如下命的过程,执行完毕后,为aList变量所分配的内存就会自动释放,不需要用aList.free来释放内存,可以有效避免因忘记释放内存而导致内存泄漏。接口中并没有包括全部的TStringList函数或过程,可以根据实际需要进行增减。这个接口化处理方法也适用于其它组...
2018-08-03 10:25:42
684
原创 【Delphi】大幅提升Datasnap数据传输效率的方法
方法一:增加TCP读写缓存的大小 DataSnap Server中负责TCP/IP通讯的组件是TDSTCPServerTransport,它默认的TCP/IP读写缓冲区的大小为32KB,由BufferKBSize属性来设置。测试结果显示,这个默认的缓冲区大小,只适合返回很小的数据集的情况,在返回较大的数据集、或者上传文件到数据库/从数据库下载文件等情况下,会造成严重的数据传输效率低下...
2018-07-30 12:14:11
4790
原创 【SQL Server】清除数据库表中的右截断字符
这里说的右截断字符,是指类型为char或varchar的字段中,最后一个双字节字符(如汉字)由于字段宽度不够被切断为只剩下1个字节的字符,这个字符会被显示为乱码。SQL Server 2000及更早的版本,碰到要保存的字符串长度大于字段长度时,会把字符串截成字段的长度再保存,这个过程会出现右截断字符。数据库升级到新版本后,这些右截断字符仍然存在,会妨碍数据导入/导出、BCP in/ou...
2018-07-26 13:19:43
1905
原创 【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
2099
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
1688
原创 【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
1021
原创 【Delphi】解决XE3及以上版本中的ClientDataSet的长中文字段名出现乱码的问题【此问题从Delphi 10.3.3开始已解决】
这个问题起码从Delphi XE3开始就存在,一直到目前最新版本都是这样,而且预计还会长期存在下去。导致这个问题的原因是这个组件和DataSetProvider组件的一些变量从AnsiString改成了utf8String, 但又没有改得很完整。对于英文来说,AnsiString和utf8String是一样的,因此对英文没有影响,但对于其他语言来说,AnsiString和utf8St...
2018-06-29 22:38:41
1378
原创 【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
1774
DHNetSDK__DHConfigSDK__V3.052 For Delphi.rar
2020-06-10
HCNetSDK.pas
2020-05-30
HCNetSDK.pas
2020-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人