Delphi 中的自动释放策略
摘要:一、指定 Owner 后, 随 Owner 连带释放://uses Vcl.StdCtrls, Vcl.ExtCtrls;var panel: TPanel;procedure TForm1.Button1Click(Sender: TObject);begin panel := TPanel.Create(Self); panel.Parent := Self; with TButton.Create(panel) do //AOwner = panel begin Parent := panel; Caption := 'New Button'; end;end;p...
阅读全文
posted @
2011-12-21 15:42
万一
阅读(18326)
推荐(0) 编辑
将 4 个 Byte 合成 1 个 Integer 的五种方法 - 回复 "三足乌" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2010/04/21/1717584.html#1809298
阅读全文
posted @
2010-04-24 16:13
万一
阅读(6487)
推荐(0) 编辑
关于 "高位" 与 "低位" - 回复 "Lovemit" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/09/11/1288760.html#1807074本话题会涉及到: Lo、Hi、HiByte、LoWord、HiWord、MakeWord、MakeLong、Int64Rec譬如有一个 Cardinal 类型的整数: 1144201745其十六进制的表示是: $44332211其二进制表示是: 01000100 00110011 00100010 00010001我们说 Cardinal 是 32 位的整数, 这里的位是指 "二进制的位数", 不信你数数.我们需要重点面对的是十六进
阅读全文
posted @
2010-04-21 21:18
万一
阅读(7570)
推荐(1) 编辑
如何在定义局部变量时赋初始值
摘要:局部变量不像全局变量可赋初始值, 但可以通过编译指令把指定类型的常量当作变量用, 如:const{$J+} num: Integer = 1;{$J-}begin Inc(num); ShowMessage(IntToStr(num)); {2}end;//或者写作:const{$WRITEABLECONST ON} num: Integer = 1;{$WRITEABLECONST OF...
阅读全文
posted @
2009-11-09 18:12
万一
阅读(9470)
推荐(0) 编辑
一个关于 absolute 关键字的小练习
摘要://例子中的三个变量让 absolute 都给弄到一块了, 这有时会很方便; 但我总也想不到用, 还是不熟. procedure TForm1.FormCreate(Sender: TObject); var num: Int64; pt: TPoint absolute num; arr: array[0..1] of Integer absolute pt; begin p...
阅读全文
posted @
2009-02-19 16:03
万一
阅读(7202)
推荐(1) 编辑
获取各种编码的识别符
摘要:下面是常用编码的识别符, 在 Delphi(2009) 中如何获取呢? Unicode: FF FE; BigEndianUnicode: FE FF; UTF8: EF BB BF var bs: TBytes; b: Byte; str: string; begin {只有 Unicode、BigEndianUnicode、UTF8 编码有识别符} bs := TEnc...
阅读全文
posted @
2008-11-19 16:42
万一
阅读(8554)
推荐(0) 编辑
汉字与区位码(2) - 分析
摘要:在没有 Uncode 的时代, 用 256 个 ACSII 只是方便了英文, 其他文字怎么办? 那时是各自为政的, 譬如中文就有: GB2312-80(国内简体)、Big5(台湾繁体)、HKSCS(香港繁体), 但它们互不兼容. GB2312(1980年) 后来升级到 GBK(1995年), 现在电脑上使用的是 GB18030(2000年), 这个系列是向后兼容的. 区位码的概念是在 GB...
阅读全文
posted @
2008-11-19 10:41
万一
阅读(6962)
推荐(0) 编辑
汉字与区位码(1) - 转换函数
摘要:先上转换函数: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2...
阅读全文
posted @
2008-11-19 10:14
万一
阅读(7700)
推荐(1) 编辑
Delphi 关键字详解[整理于 "橙子" 的帖子]
摘要:absolute //它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var Str: string[32]; StrLen: Byte absolute Str; //这个声明指定了变量StrLen起始地址与Str相同. //由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度. begin Str := 'abc'; Edit...
阅读全文
posted @
2008-06-23 23:40
万一
阅读(24813)
推荐(4) 编辑
演示 Rect、Bounds 生成 TRect 的区别
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; ...
阅读全文
posted @
2008-05-01 18:07
万一
阅读(5496)
推荐(1) 编辑
全局变量 HInstance 到底是在什么时候赋值的?
摘要:在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的. 输入 HInstance; "Ctrl+鼠标" 找到它的声明之处: SysInit 单元的第 29 行(Delphi 2007) - HInstance: LongWord; 看来 Delphi 的隐含单元不只是 System.pas, 还有 SysIn...
阅读全文
posted @
2008-04-01 14:04
万一
阅读(6410)
推荐(1) 编辑
什么是堆、栈?
摘要:Delphi 的属性太复杂了, 先换换思路, 再继续学习. 程序需要的内存空间分为 heap(堆) 和 stack(栈); heap 是自由存储区, stack 是自动存储区; 使用 heap 需要手动申请、手动释放, stack 是自动申请、自动释放; 使用 heap 时, 如果只申请不释放, 就会发生"内存泄露"; 不需要申请和释放空间的元素, 譬如变量、结构(record)等, 是...
阅读全文
posted @
2008-01-22 12:00
万一
阅读(7586)
推荐(0) 编辑
System 提供的编译期函数
摘要:Dec //将例程中的参数值递减1或一个特定的值,其中特定值可在第二个可选参数中定义 Inc //将例程中的参数值增加1或一个特定的值 Odd //如果参数为奇数返回真 Pred //根据参数在其数据类型定义中的序列,返回参数值的前驱值 Succ //返回参数值的后继值 Ord //返回参数值在其数据类型值集合中的序号 Chr //取得 AscII 码对应的字符 Low //返回参数对应的有序数...
阅读全文
posted @
2007-11-30 13:59
万一
阅读(4830)
推荐(1) 编辑
Pascal 语言中的关键字及保留字
摘要:absolute //指令(变量) abstract //指令(方法) and //运算符(布尔) array //类型 as //运算符(RTTI) asm //语句 assembler //向后兼容(汇编) at //语句(异常处理) automated //访问类别符(类) begin //块标记 case //语句 cdecl //函数调用协定 class //类型 c...
阅读全文
posted @
2007-11-22 17:14
万一
阅读(10754)
推荐(0) 编辑
语言字符集
摘要:Object Pascal 使用ASCII 字符集,包括A-Z、a-z、0-9、以及其它标准字符,字母是大小写无关. 单字符特殊符号: # $ & ' ( ) * + , - . / : ; @ [ ] ^ { } 组合字符特殊符号: (* *) (. .) .. // := = 其中:‘[]’相当于‘(..)’; ‘(**)’相当于...
阅读全文
posted @
2007-11-22 15:02
万一
阅读(5978)
推荐(1) 编辑
关于注释
摘要:{...} (*...*) //... 相同的注释不能嵌套. 若 $ 符紧跟在 { 或 (* 之后,则注释是编译器指示字。例如 {$WARNINGS OFF} 就是告诉编译器别产生警告信息。
阅读全文
posted @
2007-11-22 14:56
万一
阅读(5572)
推荐(0) 编辑
单元文件结构
摘要:unit Unit1; interface {接口部分开始} uses {引用单元列表,这是可选的,如果包含必须紧跟interface关键字} {接口部分声明常量/类型/变量/过程和函数,这些声明对引用单元就像自己的声明一样} {在接口部分声明的过程和函数,就像使用了forward关键字} {接口部分结束} implementation {实现部分} uses ...
阅读全文
posted @
2007-11-22 14:54
万一
阅读(8414)
推荐(4) 编辑