需求分析: 
  Delphi中常量的应用是很灵活的。这里对Delphi中的特殊常量进行一下子的总结吧。 
 思路分析:
1.比较总结。
2.关注点:常量的标识。
行文思路:
在Delphi中,特殊常量往往都有标识,而且加亮显示为蓝色。 
 
a)字符串常量,用单引号扩住标识,加亮显示为蓝色。 
这样子标识是字符串常量;(hyp:而且这个是应用的最多的啦。) 
 
 
b)十六进制常量,用$符号开头加十六进制数据方式标识,加亮显示为蓝色。 
这样子来标识这是个十六进制数字常量; 
(hyp:有的时候我们需要操作指针的地址,比如指针地址偏移的操作。 
例如: 
假如我有个指针是$0ef008c0,偏移量是4e,请问我如何把这个指针表示出来,然后把它的值取出来呢? 
答案: 
1、先把指针转换成数字, 譬如: Cardinal($0ef008c0) 
2、然后把这个数字 + 偏移量, 譬如: Cardinal($0ef008c0) + $4e 
3、再转换回你的指针类型, 譬如: MyPointer(Cardinal($0ef008c0) + $4e) 
---没有测试, 仅供参考. 
 
若原来指针名为p,可以这样写: 
 
Pointer(Integer(p)+$4E)^ 
 
也可以 
pDWord(DWord(p)+$4E)^ 
 
 
(hyp:这个自己是摘自万一的博客。感觉万一解释的很好。这个指针操作很灵活呀。) 
) 
 
 
c)字符常量,用#开头标识加字符对应ASCII码数字方式,加亮显示为蓝色。 
这样子来标识是字符常量。 
(hyp:在这里要学习和记忆一些常用的字符ASCII码制,以方便程序的编写和开发使用:Delphi中#32就是空格字符,#34就是单引号,#36就是$字符。 
另外三个,请看引自《Pascal精要》的一点东西,如下: 
 
“涉及到特殊字符时用数字符号较好。 
#9 跳格 (Tab 键) 
#10 换行 
#13 回车 (Enter 键)” 
 
 至于#10和#13,这个谁是回车,谁是换行,我也老是记不住。不过,一切都是代码说了算。 
 下面写上三行代码,查看用法: 
  showmessage('a'+#13+'b'); 
  ShowMessage('a'+#10+'b'); 
  ShowMessage('a'+#13#10+'b'); 
  最后得出的结论是:三种方式都得到同样地结果。 
就是: 
  a 
  b 
  知道这种效果就好了。不过,通常#13和#10都是同时来用的。比如灰鸽子的代码, 
比如显示程序的版本,作者等信息时候用一个Label标签来显示,那么,如何换行, 
也是这个用法。 
 
至此,所以,得出一个结论: 
编程好习惯: 
多用字符的Ascii码制,少点直接用字符去写代码。 
看上去更专业,而且似乎安全性业更高点 
) 
 
。 
 
补充: 
  对于上面的第三点,字符常量的使用,还可以补充一点点: 
  要使用#加上字符ASCII,那么,如何查看一个字符的ASCII码值,当然你可以使用Cnpack开发的工具,不过,你可以自己编写代码呀,用到Ord函数。其反义词即使Char函数。 
用法: 
Ord-用于获取一个字符的ASCII值。 
Char-用于将一个ASCII值转换为对应的字符。 
所以,上面第三种用法等价于用Char的用法。 
 
 
下面来看Ord和Char以及#它们的用法相关代码吧: 
 
比如要查看空格符的ASCII码值,可以用下面代码: 
ShowMessage(IntToStr(Ord('  ')));//得出结果是32 
那么,反过来,知道了ASCII,要输出字符,就是:ShowMessage(Char(32))就是输出空格。(hyp:Ord与Char的对立用法。) 
 
我们可以拿来使用呀。比如 
var 
s : String; 
begin 
  s:='Hello!'+char(32)+'Delphi!'; 
  ShowMessage(s);//就会输出Hello! Delphi! 
<——> 
//更加常用的用法是这样的: 
  s:='Hello!'+#32+'Delphi!'; 
  ShowMessage(s); 
end; 
(hyp:Char与#的等价用法) 
}
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号