IT行业从业10+年
在Delphi中,静态数组,编译器会自动检测下标是否越界,动态数组,不会自动检测。 注意:delphi中数组的下标索引是从0开始的,也就是说,如果数组长度为2,则下标索引分别为0,1 procedure TestArray; var arr1: array[0.
在windows系统中,可以通过Regsvr32来实现注册ocx或者dl, 编程时,调用Regsvr32来注册,却不能正常执行。尤其是在Win7系统中,需要管理员身份才能运行。
数组作为函数返回值时,非常容易引起内存泄露。 问题现象:Build应用程序后,提示非法内存访问;可是Compile应用程序却没有这个问题。 问题思考:函数返回值,在被调用函数中负责释放;局部变量也是在函数调用结束后在函数内被释放。
function PositionFirstGB(str: string): Integer;var i: integer;begin Result := 0; for i := 1 to Length(str) -1 do begin ...
Delphi XE中类成员的访问权限 共提供了6个关键词来用于限定访问权限: public、private、protected、published、automated strict private 、 strict protected其各自的含义为: 1. strict private: 此区定义的字段或方法只能用于当前的类中。
Embarcadero.RAD.Studio.XE.Architect.Update1.v15.0.3953.35171.crack(情人节特供) ---------------------------------------------------...
RAD Studio 2007 v11.0.2902.10471 说明:已集成Update3 http://altd.codegear.com/download/radstudio2007/CodeGearRADStudio2007_Dec2007.
关于人生路的思考 一:沉稳 (1)不要随便显露你的情绪。 (2)不要逢人就诉说你的困难和遭遇。 (3)在征询别人的意见之前,自己先思考,但不要先讲。 (4)不要一有机会就唠叨你的不满。
所有的原生字符串类型String转PAnsiChar都需要经过AnsiString过渡strAnsi:= PAnsiChar(AnsiString(str));
SQLite 作为一个轻量级嵌入式数据库,还是非常好用的。雨痕极力推荐~~~~~~ 今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟!下面是他发给我的测试代码。
Sqlite常见问题解答教程 一、 SQLite 特点: SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
001_Delphi葵花宝典 002_Delphi精华贴[水木清华] 003_Delphi精华贴[北大未名] 004_DelphiTips 005_Delphi技术专题[CSDN] 006_Delphi编程技巧集[电脑报] 007_Del...
進階DataSnap回叫功能(李维) Delphi/C++Builder 2010加入了回叫機制, 我也在2009年的部落格文章中說明了如何使用Delphi/C++Builder 2010的回叫功.
如何去掉Delphi自动生成的~.pas等临时文件 一、Delphi7 二、Delphi2010
昨天从 Delphi学习分享和交流这个群(117312472 一个很好的交流群)淘到了一个 'Dev汉化.ini'这个文件,刚开始还不知道怎么用,百度了下了解了下用法,果然是个好东西啊,原先用到DevExpress控件的一些英文的地方都汉化了,这里看起就顺眼多了。
49指定Filter Builder打开/保存过滤文件的默认路径解决:uses ..., cxFilterControlDialog; procedure TForm.
32根据单元的值设置样式 解决:procedure .StylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRec...
17. 怎样设计多表头的cxGrid?解决:cxGrid可以解决如下的表头:---------------------------------| 说明1 | 说明2 |---------------------------------| 字段1 | 字段2 | 字段3 | 字段4 || 字段5 | 字段6 || 字段7 | 字段8 | 字段9 |实现这个很简单,你可以直接在上面拖动字段名,拖动时会显示箭头的,放入你想显示的位置就OK了。
这些都不是原创,只是平时收集到资料然后整理的,有些可能百度一下到处都是而且还大同小异也有些不是很好找,现在贴出来希望给那些用到cxGrid的人会有所帮助 1.
const AA : arrary[0..4] of byte =(0,1,2,3,4) var BB : arrary[0..4] of byte; begin BB := AA ; {这样是错误的} Move(AA,...
A.1 使用编译设置对话框 编译器的编译指令是用于指定编译器对项目编译过程的动作和行为。可以通过[Project]->[Options]->[Complier]选项页进行设置,绝大部分的编译环境都可以通过这一对话框进行调整,他包含了对代码、语法、调试信息等的设置。
procedure mycopyfile(sourcef,targetf:string;i:integer);var FromF,ToF:file; NumRead,NumWritten:Integer; Buf:array[1.
首先做一个窗体如下 然后单元中如下代码: 在implementation下面声明两个方法如下: //外部方法,只声明一个参数,此时按照标准的对象内部事件方法TNotifyEvent声明,此声明中,Sender则对应为产生该事件的对象指针。
unit GetListViewDatas; interface uses Windows, Messages, SysUtils, CommCtrl, Variants, Classes, Graphics, Controls, Forms, ...
一、使用TfrxReport 组件工作1、加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。
1.FastReport中如果访问报表中的对象? 可以使用FindObject方法。 TfrxMemoView(frxReport1.FindObject('memo1')).Text:='FastReport'; 2.FastReport 中如何使用上下标? 设置frxmemoview.AllowHTMLTags := True;在Text输入如下 上标:mm2 下表:k6 举一反三,你还可以使用其他HTML标记。
Delphixe集成了fastMM,这回大家调试程序是的时候可以方便地检查内存泄露了。 使用方法如下: 在project中,添加一行 ReportMemoryLeaksOnShutdown := DebugHook0; DebugHook0 目的...
用 Delphi 用长了,总是发现,有些和 MS 不同的地方。例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用。
procedure TMainForm.CreateMDIChild(const Name: string); var Child: TMDIChild; begin { create a new MDI child window } ...
第一部分:有关包的介绍 一般我们编写编译一个DELPHI应用程序时,会产生一个EXE文件,也就是一个独立的WINDOWS应用程序。很重要的一点:区别于Visual Basic,DELPHI产生的是预先包裹的应用程序是不需要大量的运行库(DLL's)。
在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器,在本篇文章中让我们正式讨论如何使用Delphi XE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论。
Delphi XE程序设计系列 1-主从架构, 多层到JSON和REST 从桌面开发,主从架构,一直到多层架构,虽然都是广泛被接受的观念和技术,但在信息技术的实作上却从不是开放, 相容的世界。
(生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置,当DSServer启动时从 DSServerClass组件读取LifeCycle属性的值。
(方法篇) 在过去客户端要调用远程服务器的方法需要通过在TLB里添加接口并且在服务器对象中实现,在DataSnap 2009中调用远程服务器的方法是基于delphi的RTTI机制的,想要一个类允许被远程调用需要做以下两点: 1.
(连接篇) Delphi 的MIDAS出来了这么多年终于有改进的版本了,COM-FREE的DataSnap 2009真是清爽了很多,DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性; 第一篇就先写点DataSnap 2009连接方面可能要用到的东西,以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理 远程方法调用等方面的东西吧。
这几天刚好要做的项目要用到在互联网上传数据的功能,于是就想到D2010自带的DATASNAP就可以支持http协议的,然后就开始动手做起来了,一开始看了网上几个视频觉得很简单的,就几步就可以搞定了,没想到应用程序服务器很顺利地做完后开始做客户端了,首...
问题的引入: 准备做一个多国语言软件,发现信息变量(都是字符串)数量庞大,如果简单的通过 “变量=readstring”从ini文件中获取的话,几百个变量就是几百行,这个工作量非常大,而且也不易维护。
Lifecycle 三种属性: Session、Invocation、Server 这三种属性都用在什么情况,有什么要注意的事项,Delphi2010中罕有说明。
1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的。如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机。如何限制访问者的数量呢? 我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉。
为了能让我们的服务程序更加稳定,有些细节问题必须解决。就如上一讲中提到的客户端拔掉网线,造成服务器上TCP变成死连接,如果死连接数量过多,对服务器能长期稳定运行是一个巨大的威胁。
Delphi2010中DataSnap,如果客户端异常掉线或拔掉网线,那么在服务端会留下一个TCP连接,这个连接会变成死连接(经过测试,如果windows的TCP保持连接禁用的话,三个小时该死连接还不消失)。
作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端的网络基本信息,比如客户端IP和端口。有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接、限制功能等等。
这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了。 DataSnap有三种服务模式,其中Service Application方式建立的windows服务没有描述,描述部分是空的,感觉总是欠缺点什么。
这几天继续研究DataSnap技术。 针对服务器和客户端软件,如何发布呢?经过研究发现,分发方法非常简单! 服务器发布方法: 1.在unit ServerMethodsUnit1单元中,添加uses MidasLib;(添加MidasLib的目的是省去发布Midas.
我们来做个简单的数据库连接测试. 在上个学习的基础上,我们打开Server的ServerMethodUnit1模块,在设计界面放上三个控件: SQLConnection1: TSQLConnection;SQLDataSet1: TSQLDataSe...
DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection来连接到服务器,而在Delphi2010中提供了一个新的连接组件:TDSProviderConnection,可以更方便地来连接服务器.
让Delphi的DataSnap发挥最大效率 一个DataSnap的应用程序由两个层组成: DataSnap服务器,它有一个带有一个或者更多DataSetProvider组件的远程数据模块;DataSnap客户端,它带有一个xxxConnection组件和一个或者多个连接到DataSetProviders的ClientDataSets。
DataSnap起源于MIDAS: 作为MIDAS起始于Delphi3,Delphi4是MIDAS II,Delphi5中是MIDASIII,而后基于COM远程数据模块方式使用TCP/IP,HTTP,(D)COM构建出强大的通讯能力.
Function GBCht2Chs(GBStr: String): AnsiString; {GBK繁体转简体}Var len:integer; pGBCHTChar: PChar; pGBCHSChar: PChar;Begin pGBC...
Delphi与C#之父:技术理想架构开发传奇 来源: 51CTO 发布时间: 2011-01-05 18:10 阅读: 60 次 原文链接 全屏阅读 [收藏] 编辑点评:盖茨给Anders Hejlsberg开出三百万以上的年薪和数万股的微软股票。