单元之间数据调用
已知单元数据之间调用方式(个人总结):
1: 用class定义过程和函数
2: 用对象调用
3: 公共单元
4: 直接调用
直接调用解释,例:
两个窗体,form1,form2对应两个单元unit1,unit2
form1是主窗体.
在unit1引用unit2
在form1可以直接调用unit2的public 过程、函数、变量.
------这个怎么解释,为什么可以用form2.xxx的方式来调用,这里的form2怎么解释,对象吗?类吗?
[解决办法]
form2.test调试时的汇编代码:
Unit1.pas.31: Form2.test;
0045D725 A1004D4600 mov eax,[$00464d00]//这时eax的值实际上就是form2变量的值
0045D72A E8D1E6FFFF call TForm2.test//TForm地址是编译器固定好的,所以能调用它的test成员函数;只要test中不用读取这个eax的值,就不会出问题!而如果是操作数据成员的话,肯定会用到这个eax的!
[解决办法]