DELPHI开发
文章平均质量分 53
nextop88
这个作者很懒,什么都没留下…
展开
-
关于乱码各种贴
最近关于中文显示乱码的贴子比较多,所以也做了个总结:可以参考一下杨涛涛版主的《各种乱码问题汇总》http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.htmlMySQL字符集的原理介绍。摘录于官方文档。http://dev.mysql.com/doc/refman/5.1/zh/charset.转载 2017-05-23 09:40:11 · 386 阅读 · 0 评论 -
image从数据库中获取图片方法
procedure TForm1.GetPicture(pos:string;TempQuery: TADOQuery);var MS_JpegStream:TMemoryStream;begin try MS_JpegStream:=TMemoryStream.Create; with tempQuery do转载 2017-05-23 15:59:15 · 1375 阅读 · 0 评论 -
判断窗体存在
var form:Tform2;procedure TForm1.Button1Click(Sender: TObject);begin if form=nil then //也可写成if not Assigned(form) then begin form:=Tform2.Create(application); end转载 2017-05-23 16:19:05 · 268 阅读 · 0 评论 -
控件加提示
你可以利用THintWindow,创建一个自己的Hint。一、窗口的Type 加入 THintControl = class(TComponent)二、窗口的implementation加入THintControl的实现部分 三、Buuton等控件的MouseUp或Click事件中加入相应代码 此处,可以重新设置显示长度和背景色,体现个性化。具体代码如下转载 2017-05-23 16:44:50 · 274 阅读 · 0 评论 -
调用DLL函数例子
function funMain(inList:PAnsiChar;OutList:PAnsiChar):integer;stdcall;extern 'XX.dll'; var inList,OutList:PAnsiChar Str_InList,Str_Outlist:string;begin Get转载 2017-05-23 23:15:59 · 1170 阅读 · 0 评论 -
回叫信道
回叫信道 DataSnap XE3新增回叫信道功能。技术关键点: (1)TDBXCallback机制; (2)TDServer.BroadcastMessage方法; (3)TDSClientCallbackChanneManager1.RegisterCallback方法; 一、回叫的方式 1、服务器端回叫所有(同一信道)客户端转载 2017-05-24 00:23:05 · 292 阅读 · 0 评论 -
服务器与客户端回叫
服务器与客户端回叫 从Delphi2010开始,DataSnap支持回叫(Call Back)机制。这样,在调用耗时较长的方法时,通过回叫机制,返回服务器进程或正在处理的目标对象。 一、客户端实现步骤 在客户端声明TClientModule1的单元文件uClientModule中: 1、声明一个从TDBXCallback继承下来的对象(用于回叫参数值)转载 2017-05-24 00:33:21 · 390 阅读 · 1 评论 -
字符串转UTF8格式
将字符串转换成 UTF8 编码的函数这种转换一般用于网页地址; 我不知道 Delphi 是不是有现成的函数, 用到了就写了一个.//函数:function ToUTF8Encode(str: string): string;var b: Byte;begin for b in BytesOf(UTF8Encode(str)) do Result转载 2017-05-24 13:41:34 · 2617 阅读 · 0 评论 -
bytesof函数解析
function BytesOf(const Val: RawByteString): TBytes;var Len: Integer;begin Len := Length(Val); SetLength(Result, Len); Move(Val[1], Result[0], Len);end;转载 2017-05-24 13:43:25 · 2122 阅读 · 0 评论 -
字节转string
for i:=1 to 31 dobegin memo1.text :=memo1.text +' '+inttohex(JulyTemperature[i],2);end;为什么要将int转换成hex?JulyTemperature是一个数组,其中的温度是Byte型,为什么用inttohex?求赐教。只是个人喜好,习惯用16进制显转载 2017-05-24 15:28:41 · 592 阅读 · 0 评论 -
原型模式定义
关键字: 原型模式,对象克隆,Prototype,Clone概述:在这篇文件中,讲述原型模式定义、结构、应用、实现。深入讨论了Delphi中原型模式的实现方法。特别研究了原型模式的核心技术——对象克隆技术在Delphi中的实现途径。本文还探讨了对象引用复制和对象克隆的区别,以及VCL的持久对象机制、对象流化技术。1、原型模式解说原型模式通过给出一个原型对象来指明所要创建对象的类转载 2017-05-15 00:16:05 · 537 阅读 · 0 评论 -
文件上传下载接收端
接收端:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls, ScktComp, ToolWin;type TDataFlag=r转载 2017-05-16 09:41:20 · 222 阅读 · 0 评论 -
文件传输发送端
发送端:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, ComCtrls, ExtCtrls, ToolWin;type TForm1 = cl转载 2017-05-16 09:42:32 · 243 阅读 · 0 评论 -
BASE64测试
function GetSizeCoder3To4(InputCount: Integer): Integer; inline; begin Result := (InputCount+2) div 3 * 4 end; procedure Base64Encode(InputCount: Integer; const Input: Pointer; Outpu转载 2017-05-16 09:48:54 · 398 阅读 · 0 评论 -
delphi数据类型
Delphi 数据类型列表分类范围字节备注简单类型序数整数Integer-2147483648 .. 21474836474有符号32位Cardinal0 .. 42949672954无符号32位Shortint-128转载 2017-05-26 13:47:49 · 275 阅读 · 0 评论 -
dateuntil单元详解
unit DateUtils;interfaceuses SysUtils, Math, Types;// 把完整时间分解成日期和时间两部分function DateOf(const AValue: TDateTime): TDateTime;function TimeOf(const AValue: TDateTime): TDateTime;// 判断是否有效时间 function IsIn转载 2017-05-27 09:40:17 · 1066 阅读 · 0 评论 -
ocx注册单元
unit UAutoRegActiveX;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj; //加入ComObj单元type TAutoRegActiveXFrm = class(TForm) procedure FormCr转载 2017-05-17 13:00:34 · 337 阅读 · 0 评论 -
转动态数组的使用
从Delphi支持内建各种类型的动态数组。与静态数组的区别在于数组的长度可以变化。 一、动态数组的声明 1、一维数组var a : array of integer; // 动态数组定义时不定维数 2、多维数组var a : array of array of integer; // 二维数组var a : array of array of arra转载 2017-04-26 18:10:18 · 266 阅读 · 0 评论 -
Delphi如何将byte型的数组转换为字符串
核心提示:1、var buf:array[1..100] of byte; S1:string; s2: string; begin s1 := '12345'; Move(s1[1],buf[1],5); S...1、var buf:array[1..100] of byte; S1:string; s2: string; begin s1 := '12345';转载 2017-04-26 21:09:03 · 3530 阅读 · 0 评论 -
mysql支持的数据类型
一.数值类型Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。转载 2017-05-18 14:17:59 · 308 阅读 · 0 评论 -
borland delphi软件所有版本
http://download.csdn.net/album/detail/3731原创 2017-06-04 20:42:18 · 742 阅读 · 0 评论 -
计算机字符编码详解
from http://www.guokr.com/blog/763017/http://blog.csdn.net/stilling2006/article/details/4129700下载一个文档,一打开发现是乱码,不抓狂才怪…… 你们都知道,这都是字符编码闯的祸。ASCII、ANSI、GB18030、Unicode、UTF-8、UTF-8 with BOM、UTF with转载 2017-06-15 20:50:04 · 240 阅读 · 0 评论 -
delphi Format格式化函数
Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安转载 2017-06-05 15:40:08 · 173 阅读 · 0 评论 -
sdfsdfsd
1)—为DataSnap系统服务程序添加描述这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了。DataSnap有三种服务模式,其中Service Application方式建立的windows服务没有描述,描述部分是空的,感觉总是欠缺点什么。现找到办法添加描述:procedure TServerContainer2原创 2017-06-05 23:13:04 · 1972 阅读 · 0 评论 -
delphi 数组复制利用CopyMemory 最为完美
delphi 数组复制利用CopyMemory 最为完美 在各网站的文章里面,见复制数据的方法中,有move的,有system.copy的,而要实际应用中,这两种方法,并不是很完美,会遇到一些问题,比如copy在记录里面的复制时,编译都过不去,而CopyMemory的功能,就相当强大.要注意如果不是byte时,长度可能需要使用sizeof来参与计算Buff,BuffCm转载 2017-06-01 17:51:05 · 1986 阅读 · 0 评论 -
delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
网上对服务添加描述信息的,多数是用注册表的方式,而注册表的方式,我在win7 下测试,不知为什么,总是不行,把执行的CMD以管理员模式开启,还是没加进去。 于是在网上查到下面的代码,保存供叁考,原文博主为某站的:Ψ星泪(JPEXE) 以下代码在delphi 10.2下编译测试通过 uses Winapi.WinSvc;procedure TServerContainer1转载 2017-06-01 17:55:03 · 525 阅读 · 0 评论 -
导入EXCEL数据
try Screen.Cursor := crHourGlass; try OpenADOQuery(DM.QryTmp, 'select rq from tpJiHua where rq = ''' + Trim(ExcelApp.Cells[2,1].Value) + ''''); if DM.QryTmp.IsEmpty th转载 2017-06-02 08:40:40 · 282 阅读 · 0 评论 -
循环删除LISTBOX的项目
procedure TForm1.Button1Click(Sender: TObject);var i:integer;begin i:=Listbox1.count-1; repeat if Listbox1.Selected[i] then Listbox1.Items.delete(i); i:=i-1;转载 2017-06-02 08:50:49 · 848 阅读 · 0 评论 -
xe10 自带DEMO集合
大家好,好多朋友来信咨询Delphi和C++Builder的移动开发、DataSnap架构等问题,希望能有Demo代码学习。其实Delphi和C++Builder本身自带有很多示例代码,已经覆盖了大部分Delphi和C++Builder开发工具的特性和技术。对于开发各种特定的应用,还是需要去在特定方向钻研该方面的技术的,不要指望一套Demo代码就可以代替自己的学习。为了方便各位 Delph转载 2017-06-02 09:17:45 · 5753 阅读 · 0 评论 -
实现图片滚动浏览代码滚动源代码
?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950转载 2017-05-22 10:51:31 · 1247 阅读 · 0 评论 -
图像基本处理方法
//浮雕 procedureEmboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;var i, j, Gray, Azimuthvalue, R, G, B:integer; SrcRGB, SrcRGB1, SrcRGB2, DestRGB: pRGBTriple;begin fo转载 2017-05-22 11:57:30 · 266 阅读 · 0 评论 -
自动释放数据集
function TdmService.GetData(sql: string): TDBXReader;var cmd: TDBXCommand; Reader: TDBXReader; LDataSet: TClientDataSet;begin cmd := SQLConnection1.DBXConnection.CreateComm转载 2017-05-22 13:48:38 · 371 阅读 · 0 评论 -
Socket的错误码和描述(中英文翻译)
//下面是Socket Error的错误码和描述: Socket error 0 - Directly send error 直接发送错误 Socket error 10004 - Interrupted function //call 操作被终止 Socket error 10013 - Permission denied //c访问转载 2017-06-02 11:33:37 · 633 阅读 · 0 评论 -
mysql编码修改为utf8
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。 网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起转载 2017-05-22 15:49:17 · 854 阅读 · 0 评论 -
通过WMI获取系统信息
通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号Delphi通过WMI获取系统信息uses ActiveX, ComObj;function GetWMIProperty(WMIType, WMIProperty: string): string;var Wmi, Objs, Obj: OleVariant; Enum: IEnum转载 2017-06-19 10:25:35 · 1797 阅读 · 0 评论 -
idhttp下载文件添加进度条
procedure TfrmMain.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);begin ProgressBar1.Max:=AWorkCountMax; ProgressBar1.Min:=0; ProgressBar转载 2017-06-19 10:30:57 · 832 阅读 · 0 评论 -
用SPCOMM 在 Delphi中实现串口通讯
目录(?)[+]用Delphi 实现串口通讯,常用的几种方法为:使用控件如MSCOMM和SPCOMM,使用API函数或者在Delphi 中调用其它串口通讯程序。利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于编写较为复杂的低层次通信程序。相比较而言,利用SPComm控件则相对较简单,该控件具有丰富的与串口通信密切相关的转载 2017-06-07 18:34:49 · 936 阅读 · 0 评论 -
校验和函数
//添加校验和函数 add by nextop 20170615function GetXorC(AStr: string):Byte;var i,Count:integer; bTemp :Byte; IDATALEN:INTEGER; ADATA:ARRAY OF STRING; IBEGININDEX:INTEGER;begin Resul原创 2017-06-19 14:28:42 · 1003 阅读 · 0 评论 -
datasnap源代码解析
TIdHTTPWebBrokerBridge = class(TIdCustomHTTPServer) private procedure RunWebModuleClass(AThread: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); pro转载 2017-06-19 15:12:53 · 695 阅读 · 0 评论 -
三层Datasnap 服务端验证以及心跳包技术
首先加入以下单元:uses DBXCommon,IdTCPConnection,IdWinsock2;再声明:type ... type TCP_KeepAlive = record OnOff: Cardinal; KeepAliveTime: Ca转载 2017-06-07 23:57:22 · 3207 阅读 · 0 评论