Delphi 7.0常用函数速查手册Delphi 7.0常用函数速查手册Delphi 7.0常用函数速查手册Delphi 7.0常用函数速查手册Delphi 7.0常用函数速查手册Delphi 7.0常用函数速查手册
2023-04-15 11:30:16 23KB Delphi 7.0常用函数速查手册
1
Delphi教程(清华版),使用简单,适合初学者,简单上手
2023-04-15 11:29:29 1.36MB Delphi
1
delphi教程,内容很全面的教程,学习它需要花时间和精力,初学者学习它最好多问问身边的高手,里面的内容非常精细
2023-04-15 11:27:52 7.19MB delphi 教程
1
delphi第三方控件的安装与删除详解 包含自定义控件的安装与删除
2023-04-14 22:27:11 37KB delphi控件 安装 删除
1
delphi2007之前支持PNG格式图片
2023-04-14 14:47:26 285KB DELPHI TImage TPNGImage
1
Delphi调用明华RD系列读卡器开发范例,包含10种IC卡类型的开发例子。
2023-04-14 13:46:39 473KB delphi RD系列,明华,开发范例
1
Delphi远控源码,是在04年发布的,不过源码实现的功能太强大了,只是TServerSocker控件就实现了强大的功能。
2023-04-14 05:39:07 1.32MB Delphi远控源码
1
初学者有时候对于控件的安装会触手无策,特别是比较新的Delphi10.3.1资料较少,自定义控件安装教程(图文)可以一步一步的教你整个安装过程。
2023-04-13 21:55:32 393KB delphi 自定义控件 安装教程
1
RadStudioKeygen10_2_3.zip
2023-04-13 15:23:02 983KB Delphi
1
delphi线程池单元文件uThreadPool.pas,用法如下 type TRecvCommDataWorkItem=class(TWorkItem) public // updatetime,addtime:TDateTime; // orderid,ordertype,urljson,loadcount,savepath:string; url,Filename:string; total,order:Integer; _orderid:string; failedcount:Integer; IFCoverFile:Boolean; // 线程处理请求时触发的事件 procedure DealwithCommRecvData(Sender: TThreadsPool; WorkItem: TWorkItem; aThread: TProcessorThread); // 线程初始化时触发的事件 procedure TProcessorThreadInitializing(Sender: TThreadsPool; aThread:TProcessorThread); // 线程结束时触发的事件 procedure TProcessorThreadFinalizing(Sender: TThreadsPool; aThread:TProcessorThread); //任务队列空时触发的事件 procedure TQueueEmpty(Sender: TThreadsPool; EmptyKind: TEmptyKind); end; 先声明一个类 然后用法 FThreadPool := TThreadsPool.Create(nil); // 创建线程池 FThreadPool.ThreadsMin := 10; // 初始工作线程数 FThreadPool.ThreadsMax := 100; // 最大允许工作线程数 AWorkItem := TRecvCommDataWorkItem.Create; ISAllOverLoad:=False; AWorkItem.url:=urljson; AWorkItem.order:=i; AWorkItem.total:=JA.Count; AWorkItem.Filename:=savefilepath; AWorkItem._orderid:=orderid; AWorkItem.IFCoverFile:=IFCoverFile; FThreadPool.AddRequest(AWorkItem,True); // 向线程池分配一个任务 FThreadPool.OnProcessRequest := AWorkItem.DealwithCommRecvData; FThreadPool.OnThreadInitializing := AWorkItem.TProcessorThreadInitializing; FThreadPool.OnThreadFinalizing := AWorkItem.TProcessorThreadFinalizing; FThreadPool.OnQueueEmpty := AWorkItem.TQueueEmpty; 仔细看下线程池单元的函数说明轻松搞定。 procedure TRecvCommDataWorkItem.TQueueEmpty(Sender: TThreadsPool; EmptyKind: TEmptyKind); begin if EmptyKind=ekProcessingFinished then begin try if Assigned(geturl) then //存在的bug 如果下载文件存在的不行 begin //Sleep(200); //激活线程可能会发生在 休眠之前!! ISAllOverLoad:=True; if geturl.Suspended then //只有线程休眠了 才应该激活线程 否则不应该激活 geturl.Resume; end; finally end; end; end;
2023-04-13 14:54:51 28KB delphi线程池
1