Delphi的常量
需求分析:
  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与#的等价⽤法)
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。