uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,...
在Delphi 10 Seattle中重写 “ 使用TJSONObject分析JSON数据 ”。 由于不推荐使用某些方法,因此已对其进行了更改。...要使用TJSONObject,请添加“ System.JSON”。 uses System.JSON; 使用TJSONObject.ParseJSONValue读取JSON数据。...var JSONObject: TJSONObject; JSONObject := JSONValue as TJSONObject; 使用Count属性获取存储在JSON对象中的对数...var Size: Integer; Size := JSONObject.Count; // => 2 使用Pairs属性获取对。 指定参数的索引。...,并使用JsonValue属性获取JSON对的值部分。
前言 我们接着上文的《Delphi使用NativeXml处理XML(一)》继续进行。...或者从头开始使用Root.NodeNew添加节点,并最终SaveToFile和SaveToStream保存结果为一个XML文档。...4.1.2.1.AbortParsing property AbortParsing: boolean; 如果您使用一个SAX-like方式的OnNodeNew和OnNodeLoaded事件,并要中止解析过程...另见LoadFromFile和ReadFromString。...指定AParent为了解决Parent正确的方法和事件参考。
使用NativeXml的例子 ---- 3.1.例子A:XML的装载、存储和导出 这个例子显示如何加载一个XML文档,然后以可读格式导出到一个TMemo领域。 ...拖放一个TEdit(Edit1),TButton(Button1)和一个TMemo到你的窗体,然后连接到下面的按钮的OnClick事件代码。...该示例演示如何使用一个简单的双循环列出前2层的节点。 添加Tedit、TButton和TMemo到窗体,然后将下面的事件代码连接到按钮的OnClick。...虽然Delphi7有一种特殊类型“Utf8String”,但没有使用,以保持较低的Delphi版本的兼容性。 ...每个节点的值可以设置为widestring,使用属性的ValueAsWidestring,并可以在一般情况下使用FromWidestring函数添加widestrings。
第一部分:关于as 和 is Object Pascal提供了两个运算符as和is,用它们通过RTTI能对对象进行比较和强制类型转换。 关键字as是类型转换的一种新的形式。...,确定这个未知对象的属性和行为。...text := 'wudi_1982'; 注意在这个例子中不要再使用as进行强制类型转换,这是因为它要大量使用RTTI,另外还因为,在第一行已经判断Foo就是TEdit,可以通过在第2行进行指针转换来优化...第一个地方是DELPHI的IDE,这在前面已提到过。通过RTTI,IDE就会知道你正在使用的对象和组件的任何事情。实际上,不只是RTTI,但为了这个讨论,我们只谈RTTI方面。...其实上面的as,is操作都间接的使用了RTTI。 还是用个例子来演示吧。
使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点的Indy版本9,公司限制。。。...1、邮件包含TIdText和TIdAttachment时会出现TIdText无法发送的问题 这个问题是因为Indy代码的bug导致的,也很奇怪这种Bug是因为没有经过测试呢?还是测试没有覆盖到?...问题出在SendBody方法上,这个在之前一篇中提到过《技术笔记:Indy控件发送邮件》 当时是解决“发送Html”的问题才使用到了TIdText这个组件,因为基类TIdMessageClient中的SendBody...方法中如果存在TIdText和TIdAttachment时有一个Bug: if AMsg.MessageParts.TextPartCount > 1 then 必须>1这就有问题。...可见Indy确实主要照顾了英文的使用,像中文这种复杂的点语言估计都没好好测试吧,另外以前只听说Indy问题多但一直没感觉到,现在接触多一些果然有所体会啊。
工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的。实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能。...比如Delphi默认发送的时候文本是Ansi的,结果Foxmail却是不支持。只有GB2312、UTF-8之类的。...还好delphi里有个函数直接就用: AnsiToUtf8('中文革') 这样发过去的内容中文就可以显示了。...看了看网上的资料,就是使用另一个Indy类可以实现TIdText。...控件没实现 end; 和附件的使用方法类似,只是要设定一下格式。
重点 SSL握手 发送已加密的HTTP报文之前,客户端和服务器要进行一次SSL握手,这个握手过程中,他们完成: 客户端发送列出客户端密码能力的客户端信息,比如SSL的版本,客户端支持的密钥对和客户端支持的...针对第二个问题,SSL/TLS协议在通信过程中,并不是使用RSA加密,而是使用对称加密,对称加密的密钥(对话密钥)由双方协商生成。...编码改变通知,表示之后所有的信息都将会使用双方商定的加密方法和密钥发送 3....服务器最后响应 服务器收到客户端的随机数之后,使用私钥将其解密,这时,服务器也拥有了n1,n2,n3这三个随机数,服务器便可以生成和客户端一致的对话密钥。然后向客户端发送最后的响应。...编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送 2. 服务器握手结束通知,表示服务器端的握手阶段已经结束 到了这里,客户端和服务器就可以使用对话密钥加密之后所有的通信过程。
1.直接idhttp:Tidhttp声明一个var变量是不能使用的。...必须有控件 2.使用IdHTTP调post接口,xml格式 IdHTTP1.HandleRedirects := True;//允许头转向 IdHTTP1.ReadTimeout...Request.ContentType := ‘text/xml;application/x-www-form-urlencoded; Charset=UTF-8’; 必须用text/xml 如果是json,使用
注:它使用TsdXmlObjectReader类实现。...使用TStringStream转换这些数据流。源UTF8String可能包含换行符和控制字符,这些符号将被忽略。...使用TStringStream转换这些数据流。源UTF8String可能包含换行符和控制字符,这些符号将被忽略。...指定AParent为了解决Parent正确的方法和事件参考。 注:它使用TsdXmlObjectReader类实现。...指定AParent为了解决Parent正确的方法和事件参考。 注:它使用TsdXmlObjectWriter类实现。
随着Delphi2009(Tiburn)的发布,Indy团队已经将for FPC的版本合并到for Win32的版本中,Lazarus就此获得了最新Indy版本的支持。...要在Lazarus中安装最新的Indy,首先我们必须获取其最新的代码,由于现在Indy的代码使用SVN作为版本控制软件,所以我们必须先安装SVN客户端的软件。...这里就根据Indy官网的推荐,选择使用TortoiseSVN作为SVN客户端。(下载地址:http://tortoisesvn.tigris.org/)。...我们选择“SVN Update”,系统就会开始连接Indy的代码库并下载代码。其间还会提示需要输入用户名和密码,这两项都填indy 就可以了。...5、代码下载完成后,整个代码目录树的结构是这样的: 至此,Indy最新的代码已经全部下载下来了。下一篇文章将讲述如何将获取的代码重新组织以供Lazarus使用。
你不能在这个值中设置&和引用(quote)Ansi字符,或者XML不支持的字符。 注:这个值中的转义(escape)字符不会被转换。...使用范围外的Index是无效的。...xbeBinHex是无意义的,(只有一半的长度),使用xbeBase64更困难(必须使用填充字符)。...在最终的XML文档中,这个数据使用BinHex或Base64编码的文本。注意NativeXml仅支持最大2Gb数据文件,不能使用巨大的文件。...总是使用同一种编码读写它。 4.1.16.42.Clear procedure Clear; virtual; 清除当前XML节点的所有子节点和属性,包括名字和值。
通过以上两篇关于对中心服务器和登录服务器设计的阐述,大家应该对设计它们有了一定的了解。但是中心服务器和登录服务器毕竟是游戏外围的部分,也就是说设计好了它们也还是无法实现编写一款游戏的目的啊。...record Socket:TSocket; //套接字 UserID:Pchar; //玩家编号 UserName:Pchar; //玩家名称 UserKey:Pchar; //玩家解密和加密时使用的密钥...end; PUserRoom = ^ RUserRoom; 对于这个结构的维护我们也可以使用一个类来做(例如:TRoomControl)。 以上的3个类是游戏服务器主要编写的3个类。...例如象棋游戏和挖坑游戏,它们的区别在于游戏的规则(一个是棋类游戏,一个是牌类游戏),而不在于玩家的状态(这两款游戏玩家都有坐下、举手、游戏等等功能)。...所以我们要做到游戏服务器的可扩展性,应该将游戏的逻辑部分和玩家的状态区分开来。将玩家状态部分让游戏服务器来管理,将游戏逻辑部分使用脚本或者DLL的方式来动态加载。
从功能上讲,虚拟方法和动态方法几乎完全相同,只不过虚拟方法在调用速度上比较愉,但代码长度稍 长,而动态方法在调用速度上稍慢而在代码长度上短一此.一般来说,在虚拟和动态之间还是选择使用 虚拟为好。...使用inherited保留字还有个好处,就是如果Delphi没有提供处理该消息的缺省句柄,程序就会自己调用 TObject的DefaultHandler方法,这是个能对所有消息进行基本处理的缺省句柄。...注意Self表示的是类而不是对象,因此不能用self来引用类中的字段和一般的方法以 及属性。不过您可以使用Self引用类的构造和其它类方法。这些是不依赖于实际的对象实例的。...除此之外,你还可以使用一个返回 类型与属性数据类型一样的函数来读取它的值。这和设置值是一样的。...对于数组属性来说,可以使用Read和Write子句,但Read和Write子句只能指定方法而不是字段,并 且object Pascal规定,Read 子句指定的方法必须是一个函数,函数的参数必须在数量和类型上与索引
为了学习Python,决定使用Delphi+Python来实现。Delphi中是使用PythonForDelphi控件来加入Python引擎的。实现整个功能用了大半天时间。...delphi项目方面,需要先修改数据表的封装类,使它能在Python中出现并使用,简单操作数据表。...Delphi中的String保存的中文信息,通常都是使用系统的默认字符集来编码的。从Delphi中取出String如:s1 = deb.DEFZ,s1这时的编码是系统默认字符集(gbk)。...保存回Delphi中时,再将Unicode使用gbk编码:deb.DEFZ = uDEFZ.encode('gbk')。...PythonforDelphi控件,使用Delphi的Rtti技术,py脚本中能直接使用部分published的属性,简化了许多工作量。
转自:http://www.360doc.com/content/13/0524/09/7873422_287679198.shtml 使用 S:string; qry2.SQL.add(‘select...询问高手之后使用 qry2.SQL.add(‘select * from a where b=’+QuotedStr(s)); 正常。 QuotedStr(s)就是在s两边加上单引号。...quotedstr(edit1.text)直接可以说是在sql查询分析器里给字符串edit1.text加个单引号,可以完全抛开delphi的语法..
HTTP和HTTPS有什么区别?...HTTPS使用安全套接字层(SSL)进行信息交换,简单来说HTTPS是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。...SSL是指安全套接层协议(以及传输层协议TLS),位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持,是目前使用最广泛的安全协议。...数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。...使用ssl证书优势?
delphi 函数 给字符串两边加单引号并返回....单引号” ‘ ” 将被插入到字符串s的最前和最后。例如: abc -> ‘abc ‘ 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
前言 delphi7中原本自带的一个Tmediaplayer控件,但是发现有不少视频是无法播放的,于是就想到了用windowsmediaplayer来进行播放。...安装 在Delphi7中选择“Component ——Import ActiveX Control...”菜单,会弹出“Import ActiveX0”窗口。...窗口大小问题 在DELPHI中使用微软的WindowsMediaPlayer ActiveX控件的时候,如果想让控件随窗口大小一起改变, 最常用的方法就是设置控件的Align属性,但是你会发现,对于ActiveX
构造版本号的方法解决浏览器缓存问题 学习笔记:因为java匿名类学习到接口的一些小用法 学习笔记:java并发编程学习之初识Concurrent 学习笔记:java线程安全 学习笔记:Hashtable和HashMap...引发的思考 敏捷之痒 数据库\缓存\存储开发相关 数据库SQL,NoSQL之小感悟 MongoDB安装与使用体验 缓存遇到的数据过滤与分页问题 哪种缓存效果高?...相关 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送 技术笔记:Indy的TIdSMTP改造,解决发送Html和主题截断问题 技术笔记:Delphi多线程应用读写锁 技术笔记:Indy控件发送邮件...学习笔记:7z在delphi的应用 学习笔记 :DrawText 学习笔记:delphi之TStringGrid 学习笔记: Delphi之线程类TThread 学习笔记:delphi多线程知识 WEB...开发相关 Http状态码之:301、302重定向 学点HTTP知识 学习笔记:URL Protocol在浏览器中打开本地应用程序 学习笔记:发现一个IE版本判断的好方法 使用js在网页上记录鼠标划圈的小程序
领取专属 10元无门槛券
手把手带您无忧上云