
Delphi
ltk80
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
通过方法名调用函数
unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons,ObjAuto;type{$MethodInfoON}TTestCall=class(TPersistent)publicfunctionAdd(X,Y:integer):integer;proc...原创 2022-03-25 14:50:46 · 222 阅读 · 0 评论 -
isuperobject的一个坑
str:='';jo:=so(str);n1:= jo.I['12']; //这里n1=12如果这样写:jo:=so();n1:=jo.I['12']; //这里n1=0 才是想要的结果原创 2020-08-25 20:57:50 · 1040 阅读 · 0 评论 -
Record的序列化和反序列化 (delphi)
Record的序列化和反序列化TDefaultMessage = record //网络包头 Ident: Integer; nIsZlib: Integer; nLength: Integer; end;//记录转字符串function RecordToString(var Buf; bufSize: Integer; isZlib: Boole...原创 2020-05-07 17:37:56 · 727 阅读 · 0 评论 -
delphi 双向链表,单向链表,可以替换TList,添加删除效率更高
1、TList插入删除内存操作过于频繁,效率不高,可用以于链表替换2、下链表实现自带了一个Node分配池,以避免内存分配的频率。(包括:单线链表,双向链表,队列) //链表节点 pTSingleLinkedNode = ^TSingleLinkedNode; TSingleLinkedNode = record private Next: pTSingl...原创 2020-05-07 17:20:11 · 775 阅读 · 0 评论 -
delphi 服务端效率
1.适当使用链表,在数据量大和频繁的地方尽可能使用链表2.无关联数据用hash提高速度3.减少string的使用,最好用二进制消息,如pb等4.数据在一定时间内可以打包,时间可调节,超时也自动发送5.aoi视野管理方法6.可以前后端用某种事件id来代表消息及数据,事件变化发送id号...原创 2020-05-03 16:42:00 · 298 阅读 · 0 评论 -
delphi 泛型之 动态创建类的对象
delphi 泛型使用很是折腾,和c++的差得太远。特别是类模板的使用,创建很是麻烦,还好可以变通的写出来。以下举个例子,如何使用类模板。unit test1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics...原创 2019-12-06 14:14:58 · 779 阅读 · 0 评论 -
通过winnet.dll异步访问http.get,记录坑点
winnet.dll访问http get post还是很方便的,为了增加超时设置,需要使用异步的方式来调用api,其中的坑点太多,以此文记录一下,方便以后查看。先上代码:unit Unit2;interfaceuses Windows, WinInet, SyncObjs, SysUtils;//全局函数,支持超时function HttpGet(url: string; ...原创 2019-05-16 20:49:08 · 466 阅读 · 0 评论 -
[转] Delphi7 内存管理及 FastMM 研究
Delphi7 内存管理及 FastMM 研究[转]作者:刘国辉一、引言 FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用,就连 Borland 也在delphi2007抛弃了自己原有的饱受指责的内存管理器,改用FastMM. 但是,内存管理的复杂性以及缺乏 FastMM 中文文档导致国内许多人在使用时遇到了...转载 2018-08-13 13:13:00 · 1222 阅读 · 1 评论 -
JCL流使用
JCL封装了对Stream流的操作类,使用简单方便。这里主要说下TJclEasyStream类的使用,该类封装了常用数据类型的读和写,用来作数据缓存,网络接收发送Buffer太方便了。uses JclStreams;procedure test_easy_stream;var buff: TJclEasyStream; str: string; b: boolean;...原创 2018-08-15 10:28:52 · 701 阅读 · 0 评论 -
Zmq使用记录(二)
1。广播模式( pub - sub),使用该模式服务端为订阅消息的客户端主动推送消息。这个好比事件或函数回调,客户端连接上服务端,一旦有关心的事情,就可以收到通知,还可以设置消息的过滤,只接收关心的,或者全部接收。 //pub - sub 模式//服务端server = classprivate mqContext: TZMQContext; mqSocket: TZ...原创 2018-08-03 09:27:24 · 669 阅读 · 0 评论 -
一个回调函数的访问
用回调函数来实现事件通知是通用的作法。但如果是批量事件,或者是map方式通过key来存放事件处理函数,在delphi中的写法应该是这样的://定义回调函数TfnCallBack = function(Sender: TObject) of object;myobj = classprivate FfuncList: TList; Fhash: THashMap;end;...原创 2018-08-02 20:55:20 · 158 阅读 · 0 评论 -
Zmq使用记录(一)
1、带身份识别的客户端和服务器路由模式。习惯TCP的Socket编程总会给每个连接客户端一个编号,而用到zmq中间件的时候,怎么来识别是某个客户端发来的数据呢?服务端用路由模式创建后,客户端连接时给该连接设置一个字符串的编号,就可以了。//服务端server = classprivate mqsock: TZMQSocket; mqContext: TZMQContext;...原创 2018-08-02 20:13:52 · 900 阅读 · 0 评论 -
JCL容器类的使用
Delphi的Jcl库是一个不错的代码库,有和C++ Stl类似的容器库,如Vector,List,HashMap, HastSet, Tree, Array等,支持线程安全与非安全,需要修改宏定义:{$IFDEF THREADSAFE} 编译不同的版本。jcl在自己的许多控件实现中使用,效率高且成熟安全,大家可以安心的用在项目中,不用重复造轮子了(:下面的代码列举部分容器的使用方法……1...原创 2018-08-14 18:13:43 · 640 阅读 · 0 评论 -
读取数据库varbinary字段的方法(SqlServer,MySql)
(: 数据库不一样,读取方法不一样假如我数据中有一个字段名为vardata1的数据,存放的是int数组,每个数据4个字节,2000个整型字符数据共8000个字节,在数据库中一般定义为: vardata1 varbinary(8000),SqlServer及Mysql的字段类型相同,在delphi中数组为arr1: array[0..1999] of integer,但是使用Ado及UniDac...原创 2018-08-04 18:06:41 · 8077 阅读 · 0 评论