01 2010 档案
TClientDataSet[11]: 分组统计
摘要:设计时实现的分组统计:运行时实现的分组统计://前期只需要添加 ClientDataSet1、DataSource1、DBGrid1; 事件只需要关联窗体的 OnCreateunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Gr... 阅读全文
posted @ 2010-01-31 21:27 万一 阅读(6520) 评论(1) 推荐(0)
TClientDataSet[10]: 简单统计
摘要://先在窗体上放置 ClientDataSet1、Button1 然后:{ 建表 }procedure TForm1.FormCreate(Sender: TObject);begin with ClientDataSet1 do begin { 定义表 } FieldDefs.Add('班级', ftWideString, 4); FieldDefs.Add('姓名', ftWideStrin... 阅读全文
posted @ 2010-01-30 23:02 万一 阅读(4853) 评论(3) 推荐(0)
TClientDataSet[9]: 计算字段和 State
摘要:TClientDataSet 中计算字段有两种: Calculated(计算字段)、InternalCalc(内部计算字段).两者区别是: Calculated 在每次需要时都要重新计算; InternalCalc 只需要计算一次.Calculated 需要计算的时间, InternalCalc 需要存取的时间; 当然后者快.计算字段不会被保存到文件.下面的例子先定义了两个整数字段: sum1、s... 阅读全文
posted @ 2010-01-28 20:28 万一 阅读(9154) 评论(0) 推荐(0)
TClientDataSet[8]: 关于索引与排序
摘要:索引的目的有三: 快速定位、排序、建立主从表. 下面是相关属性与方法:IndexDefs; { }IndexFieldCount; { }IndexFieldNames; { }IndexFields[]; { }IndexName; { }AddIndex(); { }DeleteIndex(); { }GetIndexInfo(); { }GetIndexNames(); {... 阅读全文
posted @ 2010-01-28 10:22 万一 阅读(12776) 评论(1) 推荐(3)
TClientDataSet[7]: 辨析 Field、FieldDef、Fields、FieldDefs、FieldList、FieldDefList
摘要:TFieldTFieldDefTFieldsTFieldDefsTFieldList、TFieldDefListAssignAssignValueClearFocusControlGetDataGetParentComponentHasParentIsBlobIsValidCharRefreshLookupListSetDataSetFieldTypeSetParentComponentValid... 阅读全文
posted @ 2010-01-27 11:34 万一 阅读(12887) 评论(6) 推荐(0)
TClientDataSet[6]: 读取 TClientDataSet 中的图片数据
摘要:当我第一次从 TClientDataSet 中读出图片数据时, 发现不是图片!慢慢观察发现是前面多了 8 个字节(前 4 个字节是 01 00 00 01, 估计是格式标识和头大小; 后 4 个字节是后面图片文件的大小), 去掉这个 8 个字节就是图片文件了.下面的例子先是检索了 20 个示例文件的所有图片字段, 并把其中的图片提取到指定文件夹;还把一个指定字段中的图片显示在了窗体上.//先在窗体... 阅读全文
posted @ 2010-01-23 19:32 万一 阅读(4964) 评论(1) 推荐(0)
TClientDataSet[5]: 读取数据
摘要:本例用到:TClientDataSet.Fields[]; { 字段集合; 它比 FieldList 有更多功能, 如可获取嵌套字段 }TClientDataSet.FieldList[]; { 字段列表; 它比 Fields 轻便, 如果只是取值用它快一些 }TClientDataSet.FieldByName(); { 根据字段名称获取字段对象; 获取一个字段对象时它比上两个快 }TClien... 阅读全文
posted @ 2010-01-22 21:40 万一 阅读(11953) 评论(7) 推荐(2)
TClientDataSet[4]: 数据浏览(设计时)
摘要: 阅读全文
posted @ 2010-01-21 13:31 万一 阅读(5393) 评论(13) 推荐(0)
TClientDataSet[3]: 手动建立数据集
摘要://放置控件: ClientDataSet1、DataSource1、DBGrid1、Button1, 然后procedure TForm1.Button1Click(Sender: TObject);begin { 添加字段 } with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := 'ID'; DataType := ftIn... 阅读全文
posted @ 2010-01-21 10:29 万一 阅读(9427) 评论(5) 推荐(2)
TClientDataSet[2]: Data、XMLData
摘要:TClientDataSet.Data { 数据的二进制格式的描述 }TClientDataSet.XMLData { 数据的 XML 格式的描述 }//先在窗体上放置 ClientDataSet1、Memo1 和三个按钮uses XMLDoc, IOUtils; { 分别提供 FormatXMLData 和 TFile.ReadAllText 函数 }{ 设定当前目录 }procedure TF... 阅读全文
posted @ 2010-01-20 13:24 万一 阅读(8353) 评论(0) 推荐(1)
TClientDataSet[1]: 浏览测试数据
摘要:想学 TClientDataSet 是在 2009 年 5 月, 但当时学不动; 现在好了, 有源码了(DBClient.pas).希望这次学习能对其内存协调方式有所了解, 顺便学点数据库的知识.TClientDataSet 是一个内存数据集(说"数据表"对不住它), 其内存数据可存取到本地(*.cds 或 *.xml 格式).用 TDBGrid 可方便查看其内存数据, 但需要用数据源组件(如: ... 阅读全文
posted @ 2010-01-20 10:06 万一 阅读(7459) 评论(2) 推荐(1)
从哪查找当前程序所有可用的环境变量?
摘要:当前程序所有可用的环境变量 = 系统环境变量 + 用户环境变量 + 当前程序环境变量.以前列出过一些, 但不全: http://www.cnblogs.com/del/archive/2009/02/22/1396164.html"系统环境变量" 与 "用户环境变量" 在: 我的电脑 - (右键)属性 - 高级 - 环境变量;"当前程序所有可用的环境变量" 在: IDE 菜单 - Tool... 阅读全文
posted @ 2010-01-19 22:00 万一 阅读(4236) 评论(5) 推荐(0)
使用多窗体时, 关于节约内存和加快启动速度的思考与尝试
摘要:刚接触 Delphi 时, 曾以为 Pi 是个常量; 当我知道它是个函数时, 曾被触动.但 Pi 返回的不过是占 10 个字节的 Extended 类型, 后来竟发现一些对象也这样干, 譬如:function Clipboard: TClipboard; { Clipbrd }function Printer: TPrinter; { Printers }function Languages: T... 阅读全文
posted @ 2010-01-19 14:08 万一 阅读(8380) 评论(7) 推荐(0)
用 SuperObject 解析淘宝上的 Json 数据 - 回复 "macrolen" 的问题
摘要:macrolen 给了这样一些数据, 说是用淘宝的 API 获取的 JSON 数据, 让我帮助解析:{"items_search_response":{"item_search":{"item_categories":{"item_category":[{"category_id":150708,"count":66},{"category_id":50002480,"count":93},{"c... 阅读全文
posted @ 2010-01-18 18:18 万一 阅读(13646) 评论(16) 推荐(0)
一句话获取文件的最新修改时间
摘要:var DateTime: TDateTime;begin FileAge('C:\Windows\Notepad.exe', DateTime); ShowMessage(DateTimeToStr(DateTime));end; 阅读全文
posted @ 2010-01-18 13:45 万一 阅读(3472) 评论(1) 推荐(0)
窗体设计时的趣事
摘要: 阅读全文
posted @ 2010-01-18 11:24 万一 阅读(5906) 评论(7) 推荐(1)
有趣的 TBitBtn.Kind
摘要:窗体上放一个 BitBtn1, 设置其属性 Kind 的值为 bkClose; 然后运行看看...结果是: 不仅自动更改了标题、图标, 并且还真的有了关闭窗口的功能.实话说, 这之前我不知道这个小功能.TBitBtn 的 Kind 属性对应的是一个枚举:TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bk... 阅读全文
posted @ 2010-01-16 13:22 万一 阅读(5671) 评论(2) 推荐(1)
如何用 GDI 绘制阴影文字 - 回复 "Splendour" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2010/01/09/1643019.html#1746542procedure TForm1.FormPaint(Sender: TObject);var x,y: Integer; str: string;begin x := 10; y := 10; str := '今天'; Canvas.Font... 阅读全文
posted @ 2010-01-14 09:58 万一 阅读(5338) 评论(12) 推荐(0)
如何把几张相同大小的图片拼合在 TImage 中 - 回复 "jxjjljf" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2009/01/09/1373051.html#1743248procedure TForm1.Button1Click(Sender: TObject);var Bits: array[0..5] of TBitmap; { 假定有 6 张相同大小的图片需要拼合 } i,n,x,y: Integer; { n ... 阅读全文
posted @ 2010-01-09 16:44 万一 阅读(3386) 评论(13) 推荐(0)
WinAPI: CopyFileEx
摘要:function CopyFileEx( lpExistingFileName: PWideChar; { 源文件 } lpNewFileName: PWideChar; { 新的目标文件 } lpProgressRoutine: TFNProgressRoutine; { 回调函数; 每复制 64K 调用一次 } lpData: Pointer; { 给回调函数的参数 } pbCanc... 阅读全文
posted @ 2010-01-08 21:44 万一 阅读(6644) 评论(5) 推荐(1)
一句话复制整个文件夹(当然包括嵌套文件夹) - 回复 "张哆哆" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2009/10/16/1584660.html#1742606使用的是 Delphi 2010 下 IOUtils 单元的 TDirectory.Copy 函数:uses IOUtils;procedure TForm1.Button1Click(Sender: TObject);const SourceDir =... 阅读全文
posted @ 2010-01-08 12:24 万一 阅读(10517) 评论(18) 推荐(0)
如何用 GDI+ 高质量地缩放图片 - 回复 "程序牛" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2010/01/07/1641084.html#1742127程序使用了 GDI+ 的新接口: http://www.cnblogs.com/del/archive/2009/12/11/1621790.htmluses GdiPlus;procedure TForm1.Button1Click(Sender: TO... 阅读全文
posted @ 2010-01-07 17:53 万一 阅读(6766) 评论(2) 推荐(0)
RegularExpressions(5) RegularExpressions 成员(二) IRegex
摘要://IRegex 的属性与方法 IRegex.GetGroupNames; { 子表达式编号数组, 譬如有两个子表达式, 会得到 0,1,2; 这基本无用 }IRegex.GetGroupNumbers; { 同上, 只是获取的是整数数组 }IRegex.GroupNameFromNumber(); { 应该是从子表达式编号获取子表达式的名称; 但没有实现, 来回都是编号 }IRegex.Grou... 阅读全文
posted @ 2010-01-07 13:31 万一 阅读(3105) 评论(0) 推荐(1)
RegularExpressions(4) RegularExpressions 成员(一)
摘要:主要成员有: IRegex、ICapture、IMatch、IMatchCollection、IGroup、IGroupCollection先看: ICapture; 常用的 IMatch、IGroup 都是从它继承而来; 作为一个底层接口一般不会被直接使用.它为 IMatch、IGroup 提供了三个属性: Index、Length、Value; 还有一个 ToString 方法也是获取 Val... 阅读全文
posted @ 2010-01-07 11:46 万一 阅读(3335) 评论(14) 推荐(1)
RegularExpressions(3) RegularExpressions 的工作思路
摘要:假如有这样一串文本: AAA1 BBB2 AA11 BB22 A111 B222 AAAA可以用表达式: [A-Za-z]+\d+ 提取到前六个字串. 测试代码:uses RegularExpressions;procedure TForm1.FormCreate(Sender: TObject);var Regex: IRegex; { RegularExpressions 提倡使用 IRegex 而不是 TRegex} Match: IMatch; { IMatch 表示匹配到的若干个字串中的一个 }begin { 构建表达式 } Regex := TRegex.Create('[ 阅读全文
posted @ 2010-01-07 10:08 万一 阅读(3131) 评论(0) 推荐(0)
RegularExpressions(2) RegularExpressions 支持的正则表达式语法
摘要:长时间不用正则, 语法都忘了; 以下是基于之前的资料又结合 msdn 复习整理的记录:TRegex.Create('abc');abcde ABCDEabcde默认区分大小写TRegex.Create('abc', [roIgnoreCase]);abcde ABCDE abcde使用 roIgno... 阅读全文
posted @ 2010-01-06 01:01 万一 阅读(6957) 评论(2) 推荐(2)
RegularExpressions(1) 一个 Net 样式的、适用于 Delphi 2009 之后版本的正则表达式组件
摘要:现在推荐使用官方的正则表达式组件: http://www.cnblogs.com/del/archive/2011/03/28/1998100.htmlRegularExpressions 和前面刚刚学完的 GdiPlus 都是 Erik van Bilsen 先生在 2009 年完成的.Erik van Bilsen 的网站: www.bilsen.com.RegularExpressions1.0 直接下载地址: www.bilsen.com/regularexpressions/RegularExpressions1.0.zipRegularExpressions 的基础是 C 写的(来 阅读全文
posted @ 2010-01-05 23:25 万一 阅读(4812) 评论(3) 推荐(2)
GdiPlus[60]: 图像(十二) IGPImageAttributes 的更多方法
摘要:IGPImageAttributes 的方法:SetWrapMode() { 设置环绕模式 }这是 IGPImageAttributes 中出了 Clone 以外唯一个和颜色不相关方法.SetThreshold()、SetThreshold() { 设置、取消 "阈值" }取值范围: 0..1假如设置阀值为 0.5, 那么超过 128 的红色都变为 256, 少于 128 的红色都变为 0;绿色、... 阅读全文
posted @ 2010-01-03 15:40 万一 阅读(4923) 评论(2) 推荐(0)
GdiPlus[59]: 图像(十一) IGPImageAttributes 之颜色矩阵(TGPColorMatrix)变换
摘要:IGPMatrix 矩阵 是个接口, 要通过 TGPMatrix 实例化后使用, 其内置了很多方法和属性.TGPColorMatrix 只是一个结构体, 除了矩阵数据(5*5)外, 它只有一个方法: TGPColorMatrix.SetToIdentity.通过 SetToIdentity 方法可初始化矩阵, 初始化后的数据是:┏ ┓┃1 0 0 0 0┃┃0 1 0 0 0┃┃0... 阅读全文
posted @ 2010-01-01 22:52 万一 阅读(4341) 评论(5) 推荐(0)