`

Delphi的灵活的参数标识

 
阅读更多
引言:
Delphi中参数的应用是很灵活的。这里对Delphi中的特殊参数进行一下子的总结吧。

在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与#的等价用法)
}
分享到:
评论

相关推荐

    DELPHI定义的条件编译的全部说明

    条件编译是Delphi编程中的一个重要概念,通过合理使用可以显著提高代码的灵活性和可维护性。无论是版本控制还是调试支持,或是跨平台开发,条件编译都能发挥重要作用。希望本文能帮助读者更好地理解和应用这一强大...

    使用Delphi读入DXF文件

    标题段包含了图形的一般信息,每个参数都具有一个变量名和一个相关值。例如,$ACADVER 文件是由 AUTOCAD 产生的,$UCSORG 是用户坐标系原点在世界坐标系中的坐标。 表段(TABLES) 表段包含了指定项的定义,包括...

    delphi事件赋值操作

    其中`Sender`参数通常用于标识触发事件的对象。 3. **事件赋值**: 赋值事件处理程序到对象的事件属性是通过赋值操作完成的。例如,如果我们有一个`TMyClass`的实例`Obj`,我们可以这样设置它的`OnSomeEvent`: ...

    DELPHI微信、支付宝支付(DLL源码)_delphi微信支付开发,delphi微信付款.zip

    这个压缩包"DELPHI微信、支付宝支付(DLL源码)_delphi微信支付开发,delphi微信付款.zip"显然是为了解决这一问题,提供了DLL源码,帮助开发者实现Delphi环境下微信和支付宝的支付功能。 首先,我们来了解DLL(动态...

    Delphi 软件程序自动重启

    CREATE_NEW_CONSOLE, // 创建标志 nil, nil, // 环境块,当前目录 StartupInfo, ProcessInfo) then begin // 新进程已成功创建,现在可以终止当前进程 TerminateProcess GetCurrentProcess, 0; end; end; `...

    delphi的二维码生成实例

    总的来说,Delphi开发者可以通过学习这个实例来掌握如何在自己的应用中集成二维码生成功能,扩展其应用程序的功能,如创建电子票务、产品标识或数据交换系统。同时,对于想要深入学习二维码生成和解码原理的开发者来...

    delphi 汉字转拼音组件

    例如,可能有一个名为 `GetPinyin` 的函数,接收一个汉字字符串作为参数,返回对应的拼音字符串。 在 Delphi7 这样的较旧版本环境中,组件的兼容性和稳定性至关重要。由于 Delphi7 已经发布多年,许多现代的编程...

    DelphisndPlaySound_delphi_delphisndplaysound_

    其中,`lpSound`参数是你要播放的声音文件的路径或者内存地址,`uFlags`参数控制播放模式,如是否循环播放、同步或异步播放等。常见的标志值有`SND_SYNC`(同步播放)和`SND_ASYNC`(异步播放)。 在Delphi中,使用`...

    Wxn_delphi_delphi7_delphi微信支付_微信支付delphi.zip

    7. **错误处理**:支付过程中可能会遇到各种异常,如网络问题、参数错误等,需要在 Delphi 代码中加入适当的错误处理机制,以保证用户体验。 8. **订单状态跟踪**:在用户支付完成后,需要监听微信支付服务器的回调...

    DelphiXE7操作sqlite数据库

    同时,Project1.identcache和Project1.dproj.local是Delphi的项目标识缓存和本地项目配置,用于跟踪项目状态和开发者个人的设置。 在实际编程中,Unit1.pas文件是Delphi的源代码文件,通常包含了表单的逻辑处理。在...

    delphi设置全局快捷键

    2. **定义快捷键参数**:在你的类或表单中,你需要定义用于存储快捷键信息的变量,如窗口句柄(`hWnd`),快捷键ID(`HotKeyId`),以及组合键的标志(`fsModifiers`)和虚拟键码(`vk`)。例如: ```delphi var ...

    Delphi 2009 全览(中文)

    Delphi 2009 的发布标志着 Delphi 开发工具的一个新阶段,特别是对 Windows 平台的支持更加完善。Delphi 2009 的 IDE(集成开发环境)采用了内部代号为 Galileo 的第六版 IDE,这一版本不仅实现了从 ANSI 到 Unicode...

    DELPHI XE 获取CPU序列号

    通过调用`cpuid`,我们可以访问到CPU的型号、厂商信息、特征标志以及序列号等重要参数。 在代码示例中,我们首先定义了一个函数`F_GetCPUID`,用于封装整个获取过程。其中,`SetCPU`函数用于设置当前进程的亲和性,...

    Delphi getcpuID

    3. **调用API函数**:在你的Delphi代码中,调用这些函数,传入适当的参数以获取CPU信息。例如: ```delphi var CPUInfo: array[0..3] of Cardinal; begin __cpuid(CPUInfo, 1); // 获取基本CPU信息 ...

    DELPHI网络连接管理,启用禁用网卡驱动

    接着,我们需要获取网卡的设备实例ID,因为这通常是唯一标识一个网卡的关键信息。这可以通过`SetupDiGetDeviceRegistryProperty`函数完成,设置其参数`SPDRP_DEVICEDESC`或`SPDRP_FRIENDLYNAME`来获取网卡的描述或...

    delphi遍历窗体句柄

    在Windows操作系统中,句柄(Handle)是一种用于标识系统对象的唯一数值,如窗口、控件、线程等。在Delphi中,`HWND`类型代表一个窗口句柄,它是Windows API中的一个数据类型。 遍历窗体句柄的基本思路是通过调用...

    一个Delphi实现的HttpServer,支持RESTful风格路由

    TinyHttpd的路由可能包含URL参数解析和动态路由规则。 4. **线程管理**:HTTP服务器通常需要处理多个并发请求,因此需要理解多线程编程。Delphi提供了TThread类来支持并发,TinyHttpd可能会使用线程池来高效地处理...

    delphi将文本转换成位图图片

    在Delphi编程环境中,将文本转换为位图图片是一项常见的需求,特别是在创建个性化标识或制作身份证件时。本文将深入探讨如何使用Delphi实现这一功能,以及涉及的关键知识点。 首先,我们要了解位图图片(Bitmap)是...

    delphi操作外部程序

    在IT领域,Delphi是一种强大的面向对象的编程...以上就是关于在Delphi中操作外部程序的一些关键知识点,包括启动程序、传递参数、发送消息以及控制界面元素。理解这些概念将有助于你构建跨进程通信的Delphi应用程序。

Global site tag (gtag.js) - Google Analytics