编码笔记

导航

随笔分类 -  Delphi XE 2-7

1

学习记录XE2的一切新东西。
Delphi编译的程序如何获取管理员权限
摘要:1.制作manifest文件 1 2 3 4 5 6 7 8 9 10 11 12 13 19 20 21 22 用记事本保存为:UAC.manifest2.第二步对于D7和XE系列有差异。(1)XE系列如上图所示,选择 Use custom manifest,然后选择刚刚保存的文件... 阅读全文

posted @ 2015-12-01 14:45 封三郎 阅读(4527) 评论(0) 推荐(0)

日期格式的正则表达式收集
摘要:这里是判断YYYY-MM-DD这种格式的^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\... 阅读全文

posted @ 2015-01-04 18:17 封三郎 阅读(1109) 评论(0) 推荐(1)

利用QJSON将FDQuery转成JSON串
摘要:服务器要支持Http协议,打算采用Http+JSON的方式来交换数据。一开始考虑使用superobject,因为以前使用比较多,比较熟悉。代码如下: 1 class function FDQueryToSJSON(aQuery : TFDQuery) : string; 2 3 class fun... 阅读全文

posted @ 2014-11-17 15:22 封三郎 阅读(1651) 评论(1) 推荐(0)

DateTimePicker如何与Delphi自带Style同步
摘要:Delphi 的 DateTimePicker 组件有一个CalColors属性,可以设置 DropDown 打开的日历节目的风格。但如果不使用 Delphi 自带的 Style,在这里设置属性看不到期望的效果。而使用了 delphi 自带的style,效果又存在瑕疵——日历面板大小有问题。如果把自... 阅读全文

posted @ 2014-10-24 00:49 封三郎 阅读(1868) 评论(0) 推荐(0)

用泛型实现对枚举的通用处理
摘要:写代码的时候遇到一个问题,想写一个通用方法来实现对枚举的类型的操作,如获取枚举的项的列表,获取一个枚举值的索引等等,本来以为很简单,写一个函数:functionGetEnumNames(枚举类): TArray结果发现这个参数怎么搞也搞不对,不知道传一个什么样的参数可以支持所有枚举类型,因为函数内会... 阅读全文

posted @ 2014-09-18 19:59 封三郎 阅读(5043) 评论(0) 推荐(0)

Delphi用QJSON解析JSON格式的数据
摘要:本来用superobject来解析JSON已经够用了,可惜这个东东不能在移动端使用,于是找到QJSON来处理。这是一个国内高手写开源免费的东西,赞一个。假入数据如下:{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0... 阅读全文

posted @ 2014-07-02 19:27 封三郎 阅读(6713) 评论(1) 推荐(0)

Http协议访问DataSnap Rest 服务器
摘要:用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要注意下面的细节,否则不能正常连接。假如服务器有如下的用户验证:procedure TSC.DSAuthenticationManager1UserAuthenticate(Sender: TObject;... 阅读全文

posted @ 2014-05-20 15:51 封三郎 阅读(2367) 评论(3) 推荐(0)

通过TCustomAttribute和反射实现动态查询(三)
摘要:利用TCustomAttribute和反射实现动态查询的管理。 在XE4中实现。 阅读全文

posted @ 2013-08-05 14:23 封三郎 阅读(547) 评论(0) 推荐(0)

通过TCustomAttribute和反射实现动态查询(二)
摘要:利用TCustomAttribute和反射实现动态查询的管理。 在XE4中实现。 阅读全文

posted @ 2013-08-05 14:20 封三郎 阅读(652) 评论(0) 推荐(0)

通过TCustomAttribute和反射实现动态查询(一)
摘要:利用TCustomAttribute和反射实现动态查询的管理。 在XE4中实现。 阅读全文

posted @ 2013-08-05 14:05 封三郎 阅读(1053) 评论(0) 推荐(0)

Delphi XE2 DataSnap服务器时序
摘要:属性设置前提:(生命周期:Session)DataSnap Server启动:ServerContainerUnit->DSServerClass1GetClassServerContainerUnit->DataModuleCreateDataSnap Client连接服务器:ServerContainerUnit->DSAuthenticationManager1UserAuthorizeServerContainerUnit->DSServer1ConnectDataSnap Client调用服务器方法:ServerContainer->DSServerCl 阅读全文

posted @ 2013-06-05 16:04 封三郎 阅读(642) 评论(0) 推荐(0)

Delphi开发Windows服务程序
摘要:开发步骤: 1、New->Other->Service Application 2、现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明一下: AllowPause:是否允许暂停 AllowStop: 是否允许停止 Dependencies: 设置服务的依存关系,服务的启动是否依赖于某个服务或者组 DisplayName: 在“服务”窗口显示的名称 Interactive: 设置为true时可以和Windows桌面进行交互,如果我们想在服务里显示窗体的话此设置就要设置为true,另外ServiceType必须为stWin32 Password: 密码... 阅读全文

posted @ 2013-03-16 13:11 封三郎 阅读(459) 评论(0) 推荐(0)

Delphi:TObject简要说明-对象的创建流程 (转载)
摘要:TObject = class //创建 constructor Create; //释放 procedure Free; //初始化实列 class function InitInstance(Instance: Pointer): TObject; //清除实列 procedure CleanupInstance; //获得类的类型 function ClassType: TClass; //获得了的名称 class function ClassName: ShortString; //判断类的名称 class function ClassNameIs(const Name: string 阅读全文

posted @ 2013-02-22 14:55 封三郎

XE2做单实例
摘要:1 unit Unit11; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 9 type10 TMyTestClass = class11 private12 //class var n : integer;13 class var MyTestCl... 阅读全文

posted @ 2012-06-05 16:54 封三郎 阅读(704) 评论(2) 推荐(1)

业务逻辑与界面元素分离的一次小尝试
摘要:项目中有一个需求,为单据的表头增加自定义项。受制于现在的架构和表头布局自定义的实现机制,自定义项的内容只能预先在IDE里面创建好,而不能通过代码动态创建,只好在单据基类里面预先放入一组控件。由于自定义项本身需要提供编辑、参照、配置、读取与保存等操作,而基类本身已经臃肿不堪,接这个机会尝试一次界面与业务逻辑分离的尝试。因为架构中本身没有数据访问曾的设计和实现,而这个仅仅是作为一个尝试,因此控制类里面并没有对数据访问这块进行分离。类图如下:因为自定义项目前支持的是3个,所以定义了一个常量来描述自定义项的个数,以后如果有扩充,修改这个常量即可。详细代码如下: 1 { 2 该类用于控制单据表头... 阅读全文

posted @ 2012-05-09 10:52 封三郎 阅读(1061) 评论(1) 推荐(1)

Delphi实现静态变量
摘要:C++有静态变量,static关键字描述,其实Delphi也可以做到。以前一般采用的是const方法来实现,现在的Delphi可以用class关键字来实现。附代码如下,两种方式具有示例。 1 unit Unit6; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 9 type1... 阅读全文

posted @ 2012-05-02 11:05 封三郎 阅读(3576) 评论(1) 推荐(1)

Delphi XE2 IDE Classic Keyboard Shortcuts
摘要:Shortcut Action Alt+[Finds the matching delimiter (forward)Alt+]Finds the matching delimiter (backward)Alt+Page DownGoes to the next tabAlt+Page UpGoes to the previous tabAlt+Shift+Down ArrowMoves the cursor down one line and selects the column from the left of the starting cursor positionAlt+Shift+ 阅读全文

posted @ 2012-04-15 23:37 封三郎 阅读(349) 评论(0) 推荐(0)

Delphi XE2 Default Keyboard Shortcuts
摘要:Shortcut Action Alt+[Finds the matching delimiter (forward).Alt+]Finds the matching delimiter (backward).Alt+Left ArrowGo back after Alt+Up Arrow or Ctrl+Click (go to declaration) operation.Alt+F7Go to previous error or message in Messages View.Alt+F8Go to next error / message in Messages View.Alt+P 阅读全文

posted @ 2012-04-15 23:34 封三郎 阅读(609) 评论(0) 推荐(0)

datasnap传输流/文件问题
摘要:我在datasnap服务器里面定义了方法:procedure UpdateDoc(ItemID : integer; doc : TStream);客户端AServerMethods_PublicClient := TServerMethods_PublicClient.Create(DM_Client.SQLConnection1.DBXConnection); ItemText := TMemoryStream.Create; try ItemText.LoadFromFile('E:\private\ksxt\Source\Client\Win32\Debug\blank.rt. 阅读全文

posted @ 2012-04-09 11:37 封三郎 阅读(1263) 评论(1) 推荐(0)

XE2的一些新东西
摘要:当然某些东西可能在XE2之前,甚至2010之前就有了,不过因为我之前没有接触到,所以也一并在这里记录一下。 扩展属性Delphi提供了一个TCustomAttribute类,该类可以为对象的属性、方法、成员等进行扩展描述,语法格式:[TCustomAttribute()]。下面举一个例子:先定一个扩展属性类TInterceptorAttribute:View Code 1 type 2 TInterceptorAttribute = class sealed(TCustomAttribute) 3 private type 4 TInterceptInfo = class 5... 阅读全文

posted @ 2012-04-01 09:47 封三郎 阅读(1396) 评论(0) 推荐(2)

1