黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  Delphi 语言常识

摘要:absolute//它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同.var Str: string[32]; StrLen: Byte absoluteStr;//这个声明指定了变量StrLen起始地址与Str相同.//由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度.begin Str := 'abc'; Edit1.Text := IntToStr(StrLen);end;abstract//它允许你创建抽象的方法, 包括有抽象方法的类称为抽象类.//Abstract关键字必须与Virtual或Dynamic关键字同时使用, 阅读全文
posted @ 2010-10-27 14:30 黄聪 阅读(799) 评论(0) 推荐(0) 编辑

摘要:本例效果图:unitUnit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Button1: TButton; RadioGroup1: TRadioGroup; procedure RadioGroup1Click(Sender: TObject); procedure FormCreate(Sender: TObject); end;var Form 阅读全文
posted @ 2010-10-27 14:28 黄聪 阅读(399) 评论(0) 推荐(0) 编辑

摘要:在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的.输入 HInstance; "Ctrl+鼠标" 找到它的声明之处: SysInit 单元的第 29 行(Delphi 2007) - HInstance: LongWord;看来 Delphi 的隐含单元不只是 System.pas, 还有 SysInit.pas.在 SysInit 单元的 658 行找到了它的赋值语句: HInstance := GetModuleHandle(nil);是在一个 _InitExe 的过程中.那程序 阅读全文
posted @ 2010-10-27 14:26 黄聪 阅读(288) 评论(0) 推荐(0) 编辑

摘要:Delphi 的属性太复杂了, 先换换思路, 再继续学习.程序需要的内存空间分为 heap(堆) 和 stack(栈);heap 是自由存储区, stack 是自动存储区;使用 heap 需要手动申请、手动释放, stack 是自动申请、自动释放;使用 heap 时, 如果只申请不释放, 就会发生"内存泄露";不需要申请和释放空间的元素, 譬如变量、结构(record)等, 是存与 stack(栈);反之如需要 Create 和 Free 的对象、需要 GetMem 和 FreeMem 的指针等, 则是存于 heap(堆);stack 比 heap 快一点点. 阅读全文
posted @ 2010-10-27 14:24 黄聪 阅读(243) 评论(0) 推荐(0) 编辑

摘要:Dec //将例程中的参数值递减1或一个特定的值,其中特定值可在第二个可选参数中定义Inc //将例程中的参数值增加1或一个特定的值Odd //如果参数为奇数返回真Pred //根据参数在其数据类型定义中的序列,返回参数值的前驱值Succ //返回参数值的后继值Ord //返回参数值在其数据类型值集合中的序号Chr //取得 AscII 码对应的字符Low //返回参数对应的有序数据类型的最小取值High //返回参数对应的有序数据类型的最大取值SizeOf //取得类型或对象所占的内存字节数 阅读全文
posted @ 2010-10-27 14:23 黄聪 阅读(233) 评论(0) 推荐(0) 编辑

摘要:absolute//指令(变量)abstract//指令(方法)and//运算符(布尔)array//类型as//运算符(RTTI)asm//语句assembler//向后兼容(汇编)at//语句(异常处理)automated//访问类别符(类)begin//块标记case//语句cdecl//函数调用协定class//类型const//声明或指令(参数)constructor//特殊方法contains//运算符(集合)default//指令(属性)destructor//特殊方法dispid//dispinterface 接口类别符dispinterface//类型div//运算符do// 阅读全文
posted @ 2010-10-27 14:22 黄聪 阅读(375) 评论(0) 推荐(0) 编辑

摘要:运算符包括:@ not ^ * / div mod and shl shr as + - or xor = > < <> <= >= in is其中 @ not ^ 是一元运算符; + - 有时是一元,有时是二元; 其他都是二元运算符.一元运算符在运算数的前面, ^ 例外,也可以在后面,如: P^; 二元运算符在运算数中间.运算符的行为随运算数的类型而变,譬如: not , 面对整数是对位求反; 面对布尔是逻辑非运算.除了 ^ is in,其它运算可应用在Variant(变体类型)上.算术运算符: + - * / div mod布尔运算符:not and o 阅读全文
posted @ 2010-10-27 14:02 黄聪 阅读(220) 评论(0) 推荐(0) 编辑

摘要:Object Pascal 使用ASCII 字符集,包括A-Z、a-z、0-9、以及其它标准字符,字母是大小写无关.单字符特殊符号:# $ & ' ( ) * + , - . / : ; < = > @ [ ] ^ { }组合字符特殊符号:(* *) (. .) .. // := <= >= <>其中:‘[]’相当于‘(..)’; ‘(**)’相当于‘{}’! " % ? \ _ | ~ 不是特殊符号.标志符用来给常量、变量、字段、类型、属性、过程、函数、程序、单元、库以及包等起名的.标识符必须是 _ 或字母开头,后面可以是字母、数 阅读全文
posted @ 2010-10-27 14:01 黄聪 阅读(189) 评论(0) 推荐(0) 编辑

摘要:{...}(*...*)//...相同的注释不能嵌套.若 $ 符紧跟在 { 或 (* 之后,则注释是编译器指示字。例如 {$WARNINGS OFF} 就是告诉编译器别产生警告信息。 阅读全文
posted @ 2010-10-27 13:59 黄聪 阅读(230) 评论(0) 推荐(0) 编辑

摘要:unitUnit1;interface {接口部分开始}uses {引用单元列表,这是可选的,如果包含必须紧跟interface关键字}{接口部分声明常量/类型/变量/过程和函数,这些声明对引用单元就像自己的声明一样} {在接口部分声明的过程和函数,就像使用了forward关键字} {接口部分结束}implementation {实现部分}uses {如果包含uses字句,必须紧跟关键字implementation} {在这里实现interface中定义的过程和函数,可以任意顺序的定义和调用.} {在这里可以省略过程和函数的列表,如果包括,必须一样.} {可以定义单元私有的常量/类型(包括类) 阅读全文
posted @ 2010-10-27 13:56 黄聪 阅读(214) 评论(0) 推荐(0) 编辑