不是原创,只是看到好的内容复制了保存下来,留着学习。
特殊符号;stdCall和external;取整函数;
特殊符号: ^ , @, #
^ : 指针
@ : 取址
^ : 符号 ^ 有两种用途,当它出现在类型标识符之前,如^typeName,表示一个类型,该类型表示指向typeName类型变量的指针;当它出现在指针变量之后,如pointer^,该符号对指针解除参照,也就是说,返回存储在内存地址(该地址保存在指针中)的值指针,指向的数据.
var I: Integer; PI: ^Integer; begin I := 10 PI := @I;; PI^ := 20; I := PI^; end;
#:ASCII码值表示符;
const tab_key=#9;//TAB键的ASCII值
--------------------------------------------------------------------------------------------------------------------------------------
stdCall意义: 原文链接 https://blog.csdn.net/delphi308/article/details/23296521
1、此代码所在单元是个库,可被别的应用来调用,像SysUtils、DateUtils、Classes等单元一样,都是为将来的无穷无尽的应用提供服务的。
2、此代码还可能出现在library的工程中,即动态链接库(.dll文件),最后会有export HInitRSCCTL的语句,这样,别的应用程序就能动态链接该库,并调用该函数。相比而言,1中所述为静态链接。
DLL调用协定,是一个参数传递标准。大家都按这个协定来使用DLL参数就不会出现出错。
stdcall是对这个函数的调用方式,具体描述了参数传递顺序是从右到左,在例程内清除参数堆栈。C语言和pascall刚好相反
external:表示函数不在本单元中实现,而是引用了外部dll中的函数
----------------------------------------------------------------------------------------------------------------------------------------
取整函数: round、Trunc、ceil、floor
链接:https://blog.csdn.net/zang141588761/article/details/51392493/
1.round(四舍五入留双)
按照银行家算法,当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。
i := Round(1.5); //等于2 j := Round(2.5); //等于2
2.trunc(取得x的整数部分)
i := trunc(-123.55); // -123
3、ceil(取得大于等于x的最小整数)
i := ceil(123.56) ; //124
4、floor(取得小于等于x的最大整数)
i := floor(123.56); //123
注:floor 和ceil是math unit里的函数,使用前要先 Uses Math
----------------------------------------------------------------------------------------------------------------------------------
TreeView1.Items.Add与TreeView.Items.AddObject\\FieldValues与Fieldbyname
请问TreeView控件中TreeView1.Items.Add与TreeView.Items.AddObject有什么不同,各用在什么地方?请问FieldValues与Fieldbyname(.AsInteger或AsString)的两者有什么不同?有什么情况只可用其一?
Add简单添加一个节点, 设置文本属性
AddObject可以将结点的Data属性与一个指针关联起来
FieldValues兼容所有的数据类型为Variant
AsInteger或者AsString实际是就是转换