时间:2005-02-25(星期五) 15:00(下午三点)
主题:浅谈怎样利用EXE + BPL + DLL + Interface实现插件式客户端解决方案
地点:群号:5726882(煮茶待英雄会议室)
主讲:A1.烟灰缸、D10.天地弦
技术支持:A3.武稀松(王锐)
2005-02-25 14:55:52 /:>D10.天地弦(185511468)
先来一点对象的基础知识润润
2005-02-25 14:56:38 /:>D10.天地弦(185511468)
这个是献给初学者的。
2005-02-25 14:57:28 /:>D10.天地弦(185511468)
2005-02-25 14:59:03 /:>D10.天地弦(185511468)
上图中A.Free,是将实例内存释放。A实际上是一指针。指向实例内存块。A.Free后A并不是为nil;A仍然记录,
实例内存块的地址(虽然内存已经释放),就像锁被砸碎了,钥匙依然还在(还是指向那把锁)一样。
所以在使用if Form1 = nil来判断Form1对象实例已经建立时要注意。
对象间的赋值(B:=A)只是将对象地址就是指针的赋值,将A实例地址赋值给B,B也是指向那块地址。
2005-02-25 14:59:29 /:>D10.天地弦(185511468)
我讲得可能不对,请高手帮忙指正
2005-02-25 14:59:41 /:>D10.天地弦(185511468)
结合图,看
2005-02-25 15:00:00 A3.武稀松(42088303)
Delphi中的类类型变量实际上都是指针,是对象的引用
2005-02-25 15:00:27 /:>D10.天地弦(185511468)
我们经常判断窗体有没有建立,一般用
if Form1 = nil then
begin
没有建立
end;
2005-02-25 15:00:46 D3天之痕若虹(86278566)
if not assigned() then
2005-02-25 15:01:14 /:>D10.天地弦(185511468)
assigned也是判断对象是不是为nil
2005-02-25 15:01:16 Max.Free/mg(24634631)
内存释放不等于指针也清空
2005-02-25 15:01:21 /:>D10.天地弦(185511468)
y
2005-02-25 15:01:34 D3天之痕若虹(86278566)
freeandnil()时, a才为nil
2005-02-25 15:01:43 C01.枫长舞(273966879)
D3天之痕若虹(86278566) 15:00:46
if not assigned() then
---有时这样判断也会出错。
2005-02-25 15:01:44 /:>D10.天地弦(185511468)
上图中A.Free,是将实例内存释放。A实际上是一指针。指向实例内存块。A.Free后A并不是为nil;A仍然记录,
实例内存块的地址(虽然内存已经释放),就像锁被砸碎了,钥匙依然还在(还是指向那把锁)一样。
所以在使用if Form1 = nil来判断Form1对象实例已经建立时要注意。
对象间的赋值(B:=A)只是将对象地址就是指针的赋值,将A实例地址赋值给B,B也是指向那块地址。
--------------------------
上面的图懂了这几句就参不多了
2005-02-25 15:01:49 A3.武稀松(42088303)
A3.武稀松(42088303) 15:02:53
Delphi中的类类型变量实际上都是指针,是对象的引用
,其实讲了这么久说是面向对象知识.其实都是指针的知识而已.D10命题不准
2005-02-25 15:02:14 /:>D10.天地弦(185511468)
好了,开始正题吧
2005-02-25 15:02:23 B1.斜阳(249208513)
建议大家以后释放对象的时候多使用FreeAndNil这个函数
2005-02-25 15:02:25 /:>D10.天地弦(185511468)
回家慢慢品味一下就行了
2005-02-25 15:03:45 A3.武稀松(42088303)
如果是组件的派生类注意在Notifiction方法就行了
2005-02-25 15:04:00 /:>D10.天地弦(185511468)
刚刚是送的
2005-02-25 15:04:02 /:>D10.天地弦(185511468)
现在开始
2005-02-25 15:04:39 /:>D10.天地弦(185511468)
BPL + DLL + EXE
2005-02-25 15:05:11 /:>D10.天地弦(185511468)
一个大的项目一般要分成几个模块
2005-02-25 15:05:44 /:>D10.天地弦(185511468)
先问一下
2005-02-25 15:06:09 /:>D10.天地弦(185511468)
有谁用DLL来开发模块
2005-02-25 15:06:17 dirk/:;(342998661)
我
2005-02-25 15:06:18 Max.Free/mg(24634631)
[v]
2005-02-25 15:06:19